前提
個人レベルでWebサービスを提供する。
今回はどのようにすれば始められるのかを確認するためなので、テスト用途として登録する。
無料で実現できる範囲までとする。
Macbook OS X Elcapitanを使用。
Pythonで開発することを想定。バージョンは2.7。
$ gcloud --version
Google Cloud SDK 121.0.0
app-engine-python 1.9.38
bq 2.0.24
bq-nix 2.0.24
core 2016.08.05
core-nix 2016.08.05
gcloud
gsutil 4.20
gsutil-nix 4.20
LINE Messaging APIの始め方
会社/事業者の登録
LINEに会社/事業者を登録する。
https://business.line.me/ja/services/bot
まず、「Developer Trialを始める」を選択する。
このプランは50人までしか登録できないが、それ以外の制約が無いプランなので、今回のようなテスト目的にちょうど良い。
会社/事業者を選択には、会社や事業者では無いので個人名で登録する。
- アカウント名には「呼鈴TEST-DEV」
- 業種には「個人」「個人(IT・コンピュータ)」
以下、順に選択して進める。
- 確認する
- 申し込む
- LINE@MANAGERへ
アカウントの作成
LINE@MANAGERでアカウントを作成する。
https://admin-official.line.me
Bot設定から、
- 「APIを利用する」を選択。
- Webhook送信は「利用する」を選択。
以下は、必要に応じて設定する。
今回は、Webhookを使って以下も対応させるので、「利用しない」に設定した。
- 自動応答メッセージは「利用しない」
- 友達追加時あいさつは「利用しない」
最後に「保存」を選択。
以上で、LINE Messaging APIが使えるようになる。
アカウントの設定
Channel Secret
32文字のコード。
右側の「SHOW」を選択して表示可能。
※今回は使用しないです。
Webhook URL
以下のURLを設定する。
https://yobirin-test-dev.appspot.com/line-receive
HTTPSであるのはLINEの仕様のため。
yobirin-test-dev.appspot.comはApp Engineが割り当てるURL。
line-receiveは、後でApp Engineで設定するWeb API。
Channel Access Token
172文字のコード。
右側の「ISSUE」を選択して発行。
ご参考:LINE API Reference
※今回は直接Web APIを使うので使用しませんでしたが。。
GAEの始め方
Google App Engineを始める。
https://console.cloud.google.com/
- Google Cloud Platformの右にある下向き三角から「プロジェクトを作成」を選択。プロジェクト名には「yobirin-test-dev」
- サイドメニューから「App Engine」を選択。
- 初めてのアプリへようこそ、の言語を選択から「Python」を選択。
- アプリのサービスを提供するロケーションは適当に選択。今回は「asia-northeast1」を選択。
「App Engine サービスを準備しています...」で1分ほど待たされ「さっそく始めましょう」が出れば完了。
※チュートリアルを実施するとgcloudの基本的な使い方が分かるので良いと思います。
gcloudをインストール
gcloudのインストールおよび設定には以下のページの「Cloud SDKのインストール」と「アカウントへの紐付け」の章が参考になります。
GCEの手順ですが、GAEでも同じです。最後のSSHが不要ですのでご注意ください。
http://qiita.com/kosuke_nishaya/items/3d9a95f559d0c22d8134
プロジェクトへの紐付け
ソースコードをプロジェクトを紐付けます。
ソースコードを配置するディレクトリを作成し、そこにソースを配置する。
今回はIFTTT-LINEのコードを使わせて頂くことにします。
git clone https://github.com/MypaceEngine/ifttt-line.git
mv ifttt-line yobirin-test-dev
cd yobirin-test-dev
LINEのChannel Access Tokenが空白なので設定する。
vi const.py
プロジェクトへの紐付けを開始するためのコマンドを実行
gcloud init
Pick configuration to use:
[2] Create a new configuration
Please enter your numeric choice: 2
Enter configuration name: yobirin-test-dev
Choose the account you would like use to perform operations for this
configuration:
[1] butadahitsuji@gmail.com
[2] Log in with a new account
Please enter your numeric choice: 1
Pick cloud project to use:
[4] [yobirin-test-dev]
Please enter your numeric choice: 4
これで準備完了。
ソースコードのデプロイ
gcloud app deploy -v 1
Do you want to continue (Y/n)? y
-vはバージョン指定。デプロイした環境は、バージョン管理によって残せます。
ただし15世代までしか残せないので、通常は-v 1のようにデプロイ先バージョンを
固定化して、常に上書きしておくと、古いバージョンを削除する手間を減らせます。
ERRORが出てこなければ大丈夫です。
Updating service に結構時間が掛かります。
butada$ gcloud app deploy -v 1
WARNING: Automatic app detection is currently in Beta
You are about to deploy the following services:
- yobirin-test-dev/default/1 (from [/Users/butada/Programming/dashbutton_hackathon/ifttt-line/app.yaml])
Deployed URL: [https://yobirin-test-dev.appspot.com]
Do you want to continue (Y/n)? y
Beginning deployment of service [default]...
File upload done.
Updating service [default]...done.
Deployed service [default]
You can read logs from the command line by running:
$ gcloud app logs read
To view your application in the web browser run:
$ gcloud app browse
さいごに
以上で、LINE Messaging APIを使ったサービスをGoogle App Engineで構築するのに必要な下準備が完了です。
LINEアカウント(呼鈴TEST-DEV)をLINEアプリの友達追加から登録すれば、Webhookが呼ばれます。その際にReplyIdが引数として渡されるので、それを使ってReplyすることもできますし(Replyは発言に対して1回のみの制約あり)、その際にLineIdも引数として渡されるので、それを使ってPushすることもできます。
参考
LINE API Reference
https://devdocs.line.me/ja/#webhook-event-object
Google Cloud Platformをローカルから利用するための準備
http://qiita.com/kosuke_nishaya/items/3d9a95f559d0c22d8134
Google Cloud Platform - ログ
https://console.cloud.google.com/logs/viewer
Google Cloud Platform - データストア
https://console.cloud.google.com/datastore