LINE BOT APIを試そうとしてSSLではまった
タイトルの通り、はまりました。
nginx+sinatraでSSLサーバを立ち上げて、コールバック用URLの設定もして試したのですが全然コールバックが呼ばれません。
curlでコールバックのURLをたたくと問題なく反応しているので間違ってなさそうなんですがね。
ネットで情報を漁るとSSLの認証関係でコールバックがよばれないという記事が多く見つかりますが、LINEのドキュメントにはその辺が明記されていません。※FAQにも特に記載がない。
私が試したのは
の2パターンで試したのですが、今のところコールバックが呼び出される気配は有りません。
APIうんぬん以前に、こんなところではまるなんて残念です。。。
感想
問題の切り分けができないので、もやもやして気分が悪いです。
あと、ちゃんとコールバックできていない状態なのに、送った方のLINEには「既読」って出てるのはちょっと違うんじゃないって思うんですが。
なんでそういう設計にしたのか気になります。
私は既読にするかどうかはコールバックされた側で処理するのがあるべき姿のように思うのですが。でないと本当に届いたかどうか分からないと思います。
APIで遊べなかったのは残念ですが、きっと、そのうちいろいろ枯れた情報とか出てくると思うのでそのときまた試してみようと思います。
[追記]
オレオレ証明書に関しては公式ドキュメントに
Note: The SSL certificate must be issued by an authorized CA. If a self-issued SSL certificate is applied to your server, requests sent from the LINE platform will fail.
って書いてありました。
「自己発行SSLの場合LINEプラットフォームからの送信は失敗します」とのこと(むむ。サラッと読み流してしまっていた私が馬鹿でした・・・)
[追記]
この記事を書いてから、Herokuなら簡単に動くという情報を見つけて、試してみたら見事動きました。
RubyでAPIを使ったメッセージ送信を試してみました。こちらの記事もどうぞ。