我水也

いろんなことに興味をもっています。

Azure App Services(PHP)でLINE BOTを作ってみた

LINE BOTを作りたくなったので、Azure App Servicesを使ってお手軽に作ってみました。
App Servicesは、.NET/python/PHP/NodeJSが使えるので、今回は個人的に馴染みのあるPHPを選択しました。

まずはLINE BOTを作るためにLINE BUSINESS CENTERでアカウントを作ります。
business.line.me

アカウントを作ったらApp Services側の作業です。

Azureポータルのメニューから[App Services] -> [+Add] -> [Web Apps]を選択して作成します。
アプリの名前を入力、サブスクリプション、リソースグループを選択(なければ新規作成)し、プランを選択します。
今回はお試し的な感じですので B1 を選択しました。

あとは[create](日本語だと[作成]とかかもしれません)して作成されるのを待ちます。


作成されたらOverview部分にこのアプリのURLがあります(http://xxxxx.azurewebsites.net)ので、これをLINE BOT側のWebhookに指定します。
httpsが必須みたいですので、https://xxxxx.azurewebsites.net:443/linebot/callback.php のようにhttpsとポート番号の指定をしてください。
パスはこれから作るファイルですので、好みに合わせて変更してください。
f:id:matcu:20161007013406p:plain

LINE BOT側には Server IP Whitelist 設定があり、ここに追加したIPからのリクエストしか受け付けないため、App Servicesのプロパティにある[Outbound IP Addresses]を追加します。

次にLINE BOTの仕様に沿ってPHPの実装を作成します。
LINE BOTの詳しい解説はリファレンスやいろいろな人の作ってみた記事を参考にしてください。
API Reference
トライアル時に作成された方の記事が結構ありますが、現在は少し実装が変わるみたいですので、そこは気を付けてください。


PHPの実装が出来ればあとはApp Servicesに転送するだけです。
Git連携などいろいろやり方はありますが、今回は純粋にFTPでファイルをあげます。

[Deployment credentials]設定をしていない方はまずftpユーザーの設定を行います。
ftpユーザーの設定後、Overview部分にユーザー名とftp/ftpsの接続先がありますので、ftpクライアントに設定します。
画像はFileZillaの設定イメージです。
f:id:matcu:20161007014359p:plain

FTPで接続出来たら必要なファイルをアップロードして完了です!

自分デバイスのLINEを開き、友だち追加からLINE DevelopersにあるQRコードを読み込ませます。

友だちになった自分のBOTに話しかけると・・・
BOTからの返事が返ってくるようになったかと思います。(あとは自分の実装次第)

私は今回、テキストだったらそのテキストを発言し、画像だったらCognitive Services - Face APIを利用して性別・年齢・笑顔度を発言するようなBOTを作りました。
azure.microsoft.com

機会があればFaceAPIの実装に関する記事を書きたいと思います。