line-bot-sdk-python の flask-kitchensink を使用して、LINE BOT を立ち上げてみる
LINE の Messaging API には line-bot-sdk-◯◯ という公式の SDK があります。
Python, PHP, JAVA, Go といった様々な言語に対応しており、LINE BOT をハックすることができます。
今回は、Python2.7.11 と line-bot-sdk-python を用いて、LINE BOT を作っていきます。
LINE BOT の立ち上げから、ngrok で検証する方法までを見ていきましょう。
line-bot-sdk-python とは?
冒頭で説明したとおり、line-bot-sdk-◯◯ は LINE 公式の SDK です。
その SDK の Python 版が line-bot-sdk-python です。
Python のバージョンは2系だと2.7以上、3系だと3.3以上が対応しております。
line-bot-sdk-python の中には、LINE BOT を構築する素材(/linebot)やテスト(/test)や例(/examples)が入っています。
今回は、例(/examples)の中の flask-kitchensink を使用します。
kitchensink(キッチンシンク)というのは「台所の流し」のことを指しますが、「出来得る限りすべてのもの」という意味もあります。
なので、flask-kitchensink は出来る限りすべての例を含んだ、ディレクトリとなります。
flask-kitchensink を起動すると様々なパターンの LINE BOT の動きを確認することができます。
line-bot-sdk-python を使って環境を構築する
それでは事前に LINE と LINE BUSINESS CENTER のアカウントを取得して、Developer TrialMessaging に登録しておいてください。
Messaging API Developer Trial までの登録の仕方は下記を参考にすれば、わかりやすいです。
LINE BOTの作り方を世界一わかりやすく解説(1)【アカウント準備編】
まず、line-bot-sdk-python をクローンします。
git clone https://github.com/line/line-bot-sdk-python.git
クローンが完了すると line-bot-sdk-python ディレクトリができあがると思いますので、
flask-kitchensink まで移動しましょう。
cd line-bot-sdk-python/examples/flask-kitchensink
次に環境変数を設定しましょう。
アカウントリストから、LINE developers に遷移して、
Channel Secret の SHOW ボタンをクリックして、出てきたシークレットキーを覚えておき、
Channel Access Token の ISSUE ボタンをクリックして、出てきたトークンを覚えておきます。
YOUR_LINE_CHANNEL_SECRETに Channel Secret のシークレットキーをYOUR_LINE_CHANNEL_ACCESS_TOKEN に Channel Access Token のトークンをいれて、下記のコマンドを打ちます。
export LINE_CHANNEL_SECRET=YOUR_LINE_CHANNEL_SECRET
export LINE_CHANNEL_ACCESS_TOKEN=YOUR_LINE_CHANNEL_ACCESS_TOKEN
環境変数が設定できたら、次は pip install を行います。
pip install -r requirements.txt
app.py をたたいて、起動させます。
これで、8000番ポートで待ち受けた状態になります。
python app.py
LINE BOT の Webhook を使用するには、外部からアクセスできるようにする(また HTTPS で接続できる必要がある)ので、今回は ngrok を使います。
ngrok とは、
localhost で動いているサーバーを外部(LAN外)からアクセスできるように、リレーしてくれるツールです。
インストールしていきましょう。
brew update
brew install homebrew/binary/ngrok2
これで完了です。
flask-kitchensink は localhost:8000 で待ち受けていますので、下記のコマンドを叩けば、外部からアクセスできる URL を発行してくれます。
ngrok http 8000
https プロトコルで発行された URL をコピーして、末尾に /callback を付与して、LINE developers の Webhook URL に記入しましょう。
VERIFY を押すと下記のようなエラーがでますが、今は特に影響が無いので放っておいても大丈夫です。
A http status of the response was '500 INTERNAL SERVER ERROR'.
これで、LINE BOT の構築が完了です。
実際に試していきましょう。
LINE BOT で遊んでみる
それでは、作成した LINE BOT で遊んでみましょう。
LINE developers の QR Code を読み取ればお使いの LINE で友達登録できます。
flask-kichensink で立ち上げた LINE BOT で何ができるかを見ていきましょう。
TextMessage 関連
ある指定されたテキストを LINE BOT にむけて、書くとテキストに対応した返答をしてくれます。
「profile」 – チャットを入れたアカウントの名前とひとことを表示してくれます。
「bye」 – グループチャットの場合は、退出してくれます。1:1のトークの際は退出できないとメッセージを返してくれます。
「confirm」 – 2つのアクションボタンを提示するテンプレートメッセージを表示してくれます。
「buttons」 – タイトル、テキストと、複数のアクションボタンを組み合わせたテンプレートメッセージを表示してくれます。
「carousel」 – 複数の情報を並べて提示できるカルーセル型のテンプレートメッセージを表示してくれます。
その他のテキストは、オウム返しになります。
LocationMessage 関連
LINE から位置情報を送信すると同じ位置情報を返してくれます。
StickerMessage 関連
LINE からスタンプを送信すると同じスタンプを返してくれます。
ただ、いくつかのデフォルトのスタンプしか対応しておりません。
対応しているスタンプは下記のリンクから確認することができます。
https://devdocs.line.me/files/sticker_list.pdf
ImageMessage, VideoMessage, AudioMessage 関連
LINE から画像ファイルまたはビデオファイルまたは音声ファイルを送信した時に flask-kichensink/static/tmp の下にファイルを保存とアクセス先のURLを返してくれます。
その他にもできることがあるのですが、基本的にこの4項目です。
まとめ
いかがでしたでしょうか?
今回は、LINE BOT の立ち上げから、ngrok で検証する方法までを紹介しました。
app.py を自分なりにカスタマイズすれば、いろいろ試せることがあると思います。
まずは、LINE BOT を使って遊びながらマスターしていきましょう。
-
お問い合わせ
SiTest の導入検討や
他社ツールとの違い・比較について
弊社のプロフェッショナルが
喜んでサポートいたします。 -
コンサルティング
ヒートマップの活用、ABテストの実施や
フォームの改善でお困りの方は、
弊社のプロフェッショナルが
コンサルティングいたします。
今すぐお気軽にご相談ください。
今すぐお気軽に
ご相談ください。
(平日 10:00~19:00)
今すぐお気軽に
ご相談ください。
0120-315-465
(平日 10:00~19:00)
グラッドキューブは
「ISMS認証」を取得しています。
認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業
「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。