line-bot-sdk-python の flask-kitchensink を使用して、LINE BOT を立ち上げてみる | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

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 ボタンをクリックして、出てきたトークンを覚えておきます。

LINE Developers 管理画面

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

ngrok 起動

https プロトコルで発行された URL をコピーして、末尾に /callback を付与して、LINE developers の Webhook URL に記入しましょう。

Webfook 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」 – チャットを入れたアカウントの名前とひとことを表示してくれます。

TextMessage profile send

「bye」 – グループチャットの場合は、退出してくれます。1:1のトークの際は退出できないとメッセージを返してくれます。

TextMessage bye send

「confirm」 – 2つのアクションボタンを提示するテンプレートメッセージを表示してくれます。

TextMessage confirm send

「buttons」 – タイトル、テキストと、複数のアクションボタンを組み合わせたテンプレートメッセージを表示してくれます。

TextMessage button send

「carousel」 – 複数の情報を並べて提示できるカルーセル型のテンプレートメッセージを表示してくれます。

TextMessage caroucel send

その他のテキストは、オウム返しになります。

LocationMessage 関連

LINE から位置情報を送信すると同じ位置情報を返してくれます。

LocationMessage Osaka send

StickerMessage 関連

LINE からスタンプを送信すると同じスタンプを返してくれます。
ただ、いくつかのデフォルトのスタンプしか対応しておりません。

StickyMessage send

対応しているスタンプは下記のリンクから確認することができます。

https://devdocs.line.me/files/sticker_list.pdf

ImageMessage, VideoMessage, AudioMessage 関連

LINE から画像ファイルまたはビデオファイルまたは音声ファイルを送信した時に flask-kichensink/static/tmp の下にファイルを保存とアクセス先のURLを返してくれます。

ImageMessage send

その他にもできることがあるのですが、基本的にこの4項目です。

まとめ

いかがでしたでしょうか?
今回は、LINE BOT の立ち上げから、ngrok で検証する方法までを紹介しました。

app.py を自分なりにカスタマイズすれば、いろいろ試せることがあると思います。
まずは、LINE BOT を使って遊びながらマスターしていきましょう。

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

グラッドキューブは
「ISMS認証」を取得しています。

認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業

「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。

いますぐ無料で
お試しください。

トライアル終了後も
無料でご利用いただけます。

お名前【必須】
メールアドレス【必須】
※携帯・フリーアドレスは不可
電話番号【必須】

利用規約』『プライバシーポリシー』に同意する