見出し画像

超実践的LINE BOT開発の手引き(実践編)

はじめに

本稿内容は自己責任にてご利用ください。本稿に起因するしないに関わらず、筆者はいかなる責任も負いません。

本ノートの狙い

読者各人の環境でサンプルのLINE BOTが動くまでを説明します。コードの中身は別の機会で説明します。

作業の流れ

1. 必要環境設定 

2. ウェブブラウザを用い、Google Cloud Platform Consoleにてプロジェクトを新規作成

3. ウェブブラウザを用い、LINE側の設定

4. ターミナルを用い、Google Cloud SDKを2のプロジェクトに合わせて設定

5. gitを用い、サンプルプロジェクトをダウンロード

6. サンプルプロジェクトを2のプロジェクトにアップロード(deploy)

7. ブラウザを用い、Channel ID、Channel Secret、MIDを設定

8. 完了

かなり工程が多いように見えますが、各工程は非常にシンプルなので、書いているとおりに進めることができれば、問題なく動作すると思われます。

サンプルの仕様

注意:株価取得に利用しているライブラリjsmの仕様?により、前日の株価が表示される模様です。あくまでLINE BOTの事例としてご利用ください。

概要:東京証券取引所の証券コード(例:トヨタ自動車の場合「7203」)をユーザが送信すると現在時刻の株価を返信するBOT。

機能:LINE APIの仕様に基づいてsignatureの確認を行い、証券コードに基づいて株価情報をスクレイプしメッセージを返信。各処理は細かい粒度に分け、App EngineのTaskQueueの機能で非同期・キューイング化し、将来的なスケーリングに対応。ユーザから入力されたメッセージはDatastoreに保管され、機能拡張に対応。

ライセンス:Apache License Version 2.0 にて配布しますが、著作権の放棄を意味しません。

以下のQRコードをLINEで登録することによって、動作テストを行うことが可能です。

1. 必要環境設定

LINE BOT API Trial Accountの取得

こちらのページから、LINE BOT API Trial Accountを取得しておいてください。

開発環境設定

開発のための設定は下記ノートを参考にしてください。基本的にターミナルで一つのコマンドを入力して適宜パスワード入力とリターンキーを押すだけです。

Mac OS Xのみを対象としていますが、Windowsの場合もGoogle Cloud SDKとGitHubをインストールすれば、適宜読みかえて対応は可能です。

2. Google Cloud Platform Consoleでのプロジェクト作成

以下のノート内の「1. Google Cloud Platform Consoleでプロジェクト作成」までの作業を行い、プロジェクトIDをメモしてください。

上記ノートの「3. Google Could SDK 設定」の作業を行い、Google Cloud SDKを本稿でのプロジェクトの設定に合わせます。

3. サンプルプロジェクトのダウンロード

ターミナルを開き、下記コマンドを入力しリターンキーを押します。

cd Documents

下記コマンドを入力しリターンキーを押します。

git clone https://github.com/yoheinishikubo/line-bot-gae.git

下記コマンドを入力しリターンキーを押します。

cd line-bot-gae

4. サンプルプロジェクトのアップロード

下記コマンドを入力しリターンキーを押します。

gcloud preview app deploy app.yaml queue.yaml

以下の様な画面が表示されますので、数で示した部分の文字列が2のプロジェクトIDと一致しているかを確認しリターンキーを押します。

一致していない場合、"n"を押してキャンセルした後、2の後半の作業を再度行ってください。

しばらく待ちますとアップロードが完了します。下図の赤枠部分のURL(以下URL1と称します)をメモしておきます。

LINE developersのウェブサイトにログインし、以下の画面の場合、"Channels"をクリックします。

LINE BOT API Trial Accountを申し込んでいる場合、以下のような画面となっているかと思われますので、Channel ID、Channel Secret、MIDの値をメモしておきます。

次にページ下部の"EDIT"ボタンを押下します。

Callback URLの設定を行います。

下図の赤枠部分に以下の値を入力し、"Save"ボタンを押下します。

<URL1文字列>:443/callback

(https://dummy.appspot.com:443/callback のような文字列となります)

Server IP Whitelistの設定を行います。下図左上のメニューボタンを押下します。

"Server IP Whitelist"のリンクをクリックします。

下図のように、107.178.194.0/24 と入力し"ADD"ボタンを押下します。

これでLINE側の設定は完了です。

7. Channel ID、Channel Secret、MIDを設定

以下のURLにブラウザでアクセスします。

<URL1文字列>/settings.html

(https://dummy.appspot.com/settings.html のようなURLとなります)

Google Accountでのアクセス許可を2の作業を行ったアカウントで承認すると、下図のような画面が表示されますので、4の作業でメモしたChannel ID、Channel Secret、MIDの値を入力し、「送信」ボタンを押下します。

こちらで全ての設定は完了し、LINE BOTとして機能します。

先ほどのLINE developersの画面内下部のQRコードを用いて、LINEで友達登録を行い、「7203」や「8411」等の証券コードを入力して動作を確認してみましょう。

8. 完了

冒頭に述べたとおり詳細は別途書く予定ですが、Google Cloud Platform上でどのようにデータの保存と管理が可能かという点を少し紹介しておきます。

今回のサンプルプロジェクトでは(main.pyというPythonファイルの中を見れば分かりますが)Messageという名称のDatastoreにユーザからのメッセージを保存しています。

同Datastore内のデータ(エンティティと呼びます)はGoogle Cloud Platform Consoleのデータストアの画面から以下のように検索・参照・確認・編集が可能です。

DatastoreはGoogleクラスの凄まじいスケーラビリティと検索性を持つサービスですが、全文検索的な機能を実装したい場合は別のAPIが必要となりますので、また、別途紹介することとします。


この記事が気に入ったらサポートをしてみませんか?