やーまんぶろぐ

気が向いた時にだけ書くブログ

コードを書かずにLINE BOT APIを試してみた

他の方の力をお借りして、コードを書かずにオウム返しするBOTを作成していきます。

BOTを動かすまでの簡単な説明を書いていきたいと思います。

アカウント登録

先着順と書いていましたが、4/12現在で登録できました。
LINE BUSINESS CENTERから登録できました。
business.line.me

そんなに難しくないと思います。

f:id:yamano3201:20160412002459p:plain

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 に登録しましょう。
f:id:yamano3201:20160412002608p:plain

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。
http://dl.profile.line-cdn.net/0m0157f85c7251b959c21ec5d006219d3a43a0fc7de0de

Herokuにデプロイ

リンク先のf:id:yamano3201:20160412001406p:plainを押すと、オウム返しするBOTがHerokuにデプロイされます。
※この記事のボタンを押しても何も起こりませんのでご注意ください。

qiita.com

こんな簡単にデプロイできるんですね。すごい。。

f:id:yamano3201:20160412005521p:plain

ここで登録したApp Nameがホストネームになります。あとでCallback URLの登録で必要になります。
ex) https://XXXX.herokuapp.com:443/linebot/callback

Channel ID、Channel Secret、MIDを記入して進めます。

f:id:yamano3201:20160412004014p:plain

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日ほど待てば良かっただけみたいですね。

f:id:yamano3201:20160412234434p:plain

最後に

LINE BOT API よりHerokuのデプロイが簡単にできすぎて、こっちに感動してしまった。

次回は、Herokuのデプロイボタンを触ってみたいと思います。

あとさすがに今回はコード書かなすぎたので、なんか面白いBOTを実装してみたいと思います。

気が向いたら、また書きます。