LoginSignup
27

More than 5 years have passed since last update.

GAEでLINE Message API(line-bot-sdk-python)を試してみた

Last updated at Posted at 2016-11-19

LINE BOT AWARDS の発表をうけて、自分もLine Message APIを試してみました。
機械学習を使ったLINEのBotを作ってみようという軽い気持ちではじめています。
GAEがLINEのBotと相性がよさそうだったので、使わせていただきました。

Line Message APIを使えるようにする設定

コチラを参考に設定をしていきます。

下記のBot設定は少し注意が必要かもしれません。
どうゆう設定をしたか気にしておきます。

snip_20161117132901.png

Google Cloud Shellを使う

Google Cloud Shellだと、ブラウザ上で手軽に作業できるので楽です。

  1. Google Cloud Console にアクセス。

  2. 右上にある Cloud Shell アイコンをクリック。
    googleshell.png

  3. Google Cloud Console の画面下に表示されるのでココで作業していきます。
    shellconsole.png

Botのコード

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のサイトにあるものですね
gamen1.png

下の項目にそれぞれあって、「SHOW」ボタン、「ISSUE」ボタンを押すと表示されます
gamen2.png
gamen3.png

そして、必要なライブラリを追加

$ mkdir lib
$ pip install -t lib flask
$ pip install -t lib line-bot-sdk

以上です^^

デプロイ

下記を実行してデプロイ

$ appcfg.py update .

最後にLINE developersのサイトで「Webhook URL」の設定をします

gamen-new.png

画面下にある「EDIT」ボタンから編集できます
gamen5.png

これで完了です!
LINEから「友達」追加を行って動作を確認してみましょう!
IMG_3855.jpg

まとめ

GAEであればフルマネージドなサービスが受けられるため、開発のみに専念できます。
Task Queueなどの機能が使えるのもありがたいです。

Botのコードに関しては、コアな処理を除くと共通で使いまわせるロジックがあると思っています。
より良いLINE Botがうまれるためにも、自分もできるだけコードを共有して他の開発者の助けになるよう頑張っていきたいです。

今回は本当にBotが動作するまでですが、ココから機械学習を含めた詳細な処理を実装していこうと思っています!
続く。。。

追記

2016/11/20 (Sun) 14:00

LINE developersのサイトの「VERIFY」ボタンを押した時に、サーバーのログに
LineBotApiError [Invalid reply token] のメッセージが出ているかと思います。
LINEさんに確認したところ、「VERIFY」の処理は疎通確認が主なので、Tokenの整合性までは
意識していない処理になっている(?) とのことで、LINEアプリからの応答処理でサーバーに
本件のエラーメッセージが出ていなければ問題無さそうでした。
本件は問い合わせも何件かきているので、修正していく方針とのことでした。
そのうち出なくなる現象と思われます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27