コードを書かずにLINE BOT APIを試してみた
他の方の力をお借りして、コードを書かずにオウム返しするBOTを作成していきます。
BOTを動かすまでの簡単な説明を書いていきたいと思います。
アカウント登録
先着順と書いていましたが、4/12現在で登録できました。
LINE BUSINESS CENTERから登録できました。
business.line.me
そんなに難しくないと思います。
Channel ID、Channel Secret、MIDは使うのでメモしておきましょう。
※Callback URLは最後に登録します。
curl で動作確認
さっそくChannel ID、Channel Secret、MIDが正しく動くか、BOTのプロフィール画像を取得して確認してみましょう。
curl -H "X-Line-ChannelID: XXXXXXXXX" -H "X-Line-ChannelSecret: YYYYYYYYYY" -H "X-Line-Trusted-User-With-ACL: ZZZZZZZZZ" -XGET https://trialbot-api.line.me/v1/profiles\?mids\=ZZZZZZZZZ {"statusCode":"427","statusMessage":"Your ip address [AAA.AA.AA.AA] is not allowed to access this API."}
Server IP Whitelist に登録したIPからしかAPI叩けないようですね。
Server IP Whitelist に登録しましょう。
curl -H "X-Line-ChannelID: XXXXXXXXX" -H "X-Line-ChannelSecret: YYYYYYYYYY" -H "X-Line-Trusted-User-With-ACL: ZZZZZZZZZ" -XGET https://trialbot-api.line.me/v1/profiles\?mids\=ZZZZZZZZZ {"contacts":[{"displayName":"やーまんぼっと","mid":"ZZZZZZZZZ","pictureUrl":"http://dl.profile.line-cdn.net/0m0157f85c7251b959c21ec5d006219d3a43a0fc7de0de","statusMessage":""}],"count":1,"display":1,"pagingRequest":{"start":1,"display":1,"sortBy":"MID"},"start":1,"total”:1}
http://dl.profile.line-cdn.net/0m0157f85c7251b959c21ec5d006219d3a43a0fc7de0de にアクセスして、さきほど登録した画像が取得できていればOK。
Herokuにデプロイ
リンク先のを押すと、オウム返しするBOTがHerokuにデプロイされます。
※この記事のボタンを押しても何も起こりませんのでご注意ください。
こんな簡単にデプロイできるんですね。すごい。。
ここで登録したApp Nameがホストネームになります。あとでCallback URLの登録で必要になります。
ex) https://XXXX.herokuapp.com:443/linebot/callback
Channel ID、Channel Secret、MIDを記入して進めます。
1,2分でdeploy成功しました。
アプリのIPアドレスを調べてServer IP Whitelistに登録
deploy成功画面から、「Manage App」→「Fixie」→「Account」と進むとIPアドレスがわかります。
2つあると思うので、さきほどのServer IP WhitelistにIPアドレスを2つ追加します。
Callback URL
アカウント登録したページの一番下にあります。
https://XXXX.herokuapp.com:443/linebot/callback を登録。
LINEから動作確認
アカウントのページのQRコードから作成したBOTを友達追加します。
LINEの友達追加画面から簡単にできると思います。
BOTに話しかけると、オウム返しされるはずが返ってこない。。
下のリンク先によると、1日ほど正常にコールバックが呼ばれないこともあるみたいなので、翌日また試してみます。。
yone098.hatenablog.com
2016/04/12 22:30追記
Herokuのログを見ると、callbackはされているように見える。。
403 Forbiddenが返ってるあたりをもう少し調べてみます。。
heroku logs --app xxxxxxx 2016-04-12T11:30:05.226177+00:00 heroku[router]: at=info method=POST path="/linebot/callback" host=xxxxxxx.herokuapp.com request_id=04e4217e-26d5-47d2-8adc-74916ea25d26 fwd="203.104.146.68" dyno=web.1 connect=1ms service=747ms status=500 bytes=326 2016-04-12T11:30:05.227383+00:00 app[web.1]: 2016-04-12 11:30:05 - RestClient::Forbidden - 403 Forbidden:
2016/04/12 23:40
何もしてないけど動いた。。上に書いたように1日ほど待てば良かっただけみたいですね。