LINE BOT AWARDS の発表をうけて、自分もLine Message APIを試してみました。
機械学習を使ったLINEのBotを作ってみようという軽い気持ちではじめています。
GAEがLINEのBotと相性がよさそうだったので、使わせていただきました。
#Line Message APIを使えるようにする設定
[コチラ]
(https://bita.jp/dml/line-messaging-api-exp)を参考に設定をしていきます。
下記のBot設定は少し注意が必要かもしれません。
どうゆう設定をしたか気にしておきます。
#Google Cloud Shellを使う
Google Cloud Shellだと、ブラウザ上で手軽に作業できるので楽です。
-
Google Cloud Console にアクセス。
#Botのコード
[line-bot-sdk-python]
(https://github.com/line/line-bot-sdk-python) のGitHubを見ながら実装していきました。
しかし、GAEは外部にリクエストを送るのにURLFetch APIを使う必要があるので。。
ここでどうやって解決しようかと悩みましたが
イメージに近いコードをあげてくださっている方がいてとても助かりました。
参考にしたコード
出来上がったコードは下記になります。
https://github.com/mochan-tk/line-bot-python-sample
#作業開始
ここからGoogle Cloud Shellを使って作業していきましょう。
まず、GitHubからコードをクローン
$ git clone https://github.com/mochan-tk/line-bot-python-sample.git
フォルダを移動し
$ cd line-bot-python-sample
app.yamlの projectをご自分の環境にあわせて変更
$ vi app.yaml
下記のファイル に SecretキーとAccess Token を設定します
$ vi config.py
SecretキーとAccess Tokenは LINE developersのサイトにあるものですね
下の項目にそれぞれあって、「SHOW」ボタン、「ISSUE」ボタンを押すと表示されます
そして、必要なライブラリを追加
$ mkdir lib
$ pip install -t lib flask
$ pip install -t lib line-bot-sdk
以上です^^
#デプロイ
下記を実行してデプロイ
$ appcfg.py update .
最後にLINE developersのサイトで「Webhook URL」の設定をします
これで完了です!
LINEから「友達」追加を行って動作を確認してみましょう!
#まとめ
GAEであればフルマネージドなサービスが受けられるため、開発のみに専念できます。
Task Queueなどの機能が使えるのもありがたいです。
Botのコードに関しては、コアな処理を除くと共通で使いまわせるロジックがあると思っています。
より良いLINE Botがうまれるためにも、自分もできるだけコードを共有して他の開発者の助けになるよう頑張っていきたいです。
今回は本当にBotが動作するまでですが、ココから機械学習を含めた詳細な処理を実装していこうと思っています!
続く。。。
追記
2016/11/20 (Sun) 14:00
LINE developersのサイトの「VERIFY」ボタンを押した時に、サーバーのログに
LineBotApiError [Invalid reply token] のメッセージが出ているかと思います。
LINEさんに確認したところ、「VERIFY」の処理は疎通確認が主なので、Tokenの整合性までは
意識していない処理になっている(?) とのことで、LINEアプリからの応答処理でサーバーに
本件のエラーメッセージが出ていなければ問題無さそうでした。
本件は問い合わせも何件かきているので、修正していく方針とのことでした。
そのうち出なくなる現象と思われます。