だいぶ前に取得していた川柳投稿まるせんのLINE@が最近LINE公式アカウントに統合され、これを機会にMessaging APIでも触っておこうと思い試してみました。
LINE公式アカウント管理画面(LINE Official Account Manager)の設定
LINEのAPIを使用するにあたり、まずは公式アカウントを作っておく必要があります。
まるせんのアカウントは@yes2126f、これで管理画面にログインします。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-20-LINE-Official-Account-Manager-800x398.png)
設定→Messaging APIを開くと、このような画面が表示されるので、Messaging APIを利用するボタンを押します。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-20-LINE-Official-Account-Manager2-800x316.png)
プロバイダーの作成を求められます。よく分かりませんが、適当な名前で作成します。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-20-LINE-Official-Account-Manager3.png)
ステータスが利用中となり、Channel IDとChannel secretのコードが発行されました。
Webhook URLには、まるせんのサーバーに置くLINE APIとやり取りするためのプログラムのURLを設定しておきます。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-20-LINE-Official-Account-Manager4-800x392.png)
Webhookを利用するためには さらに 、応答設定の基本設定で応答モードをBotに、詳細設定でWebhookをオンにしておく必要があります。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-20-LINE-Official-Account-Manager5-800x632.png)
LINE開発者管理画面(LINE Developers)の設定
LINE Developersにログインします。川柳投稿まるせんのチャネルはあらかじめ作っておきました。
チャネル
LINE Developers ドキュメント
LINEプラットフォームが提供する機能を、プロバイダーが開発するサービスで利用するための通信路。チャネルは、LINE Developersコンソールで作成できます。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-21-LINE-Developers-800x447.png)
川柳投稿まるせん→Messaging API設定にある各設定項目Webhook設定があります。
ここでもWebhook URLを設定しておき、Webhookの利用をオンにしておきます。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-21-LINE-Developers3-800x258.png)
なお、Webhook URLになんらかのプログラムを設置しておけば、検証ボタンを押して接続を検証することもできます。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_2020-02-21-LINE-Developers2.png)
Messaging APIの動作テスト
まるせんのサーバーからメッセージを送るには、大きく分けて、応答メッセージとプッシュメッセージの2種類の送信方法がありますが、フリープランではプッシュメッセージのAPIは利用することができないので、応答メッセージのAPIでテストをします。
要するに、まるせんからユーザーに対してメッセージを送信することはできないが、ユーザーからのメッセージに対する返信という形なら可能ということです。
プログラムはこちらのサイトを参考にしました。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TElORSUyME1lc3NhZ2luZyUyMEFQSSUyMCVFMyU4MSVBNyVFMyU4MSVBNyVFMyU4MSU4RCVFMyU4MiU4QiVFMyU4MSU5MyVFMyU4MSVBOCVFMyU4MSVCRSVFMyU4MSVBOCVFMyU4MiU4MSVFMyU4MCU5MCVFOSU4MCU4MSVFNCVCRiVBMSVFNyVCNyVBOCVFMyU4MCU5MSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9Y2MxZWQyMjk2MWFiZjc4MWMzZmNhYWJkMTM3NTZhODQ&mark-x=120&mark-y=96&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBrYWtha2Fvcmk4MzAmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWFmZDhhMjAzMjlmMjUyNGE0YWU4YTAzZGI4ODg2YzIx&blend-x=120&blend-y=500&blend-mode=normal&s=da108b3f9b62dd67e9f7313a974317fe)
$accessTokenには、LINE DevelopersのMessaging API設定に記載されている、チャネルアクセストークンをセットしておきます。
まずはサンプルコードの通り、なんらかのメッセージを受けたときに固定メッセージ「こんにちわ。テキスト応答ですよ。」を返信するという処理を実装します。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_20200221-174454.png)
サンプルの通り、問題なく固定のメッセージを返信することができました。
次は、ユーザーのメッセージを受け取り、そのメッセージを返信に付け足すという処理を加えてみました。
LINE Developersのドキュメントに、メッセージ仕様が公開されています。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/0bcad7cea6b219e76462f3c35cd88458.png)
上記の”Hello, world!”のところがメッセージ文で、サンプルコードでいうと、$event[‘message’][‘text’]という配列でメッセージを取得することができるので、応答メッセージにこれを付け足してみます。
![](https://fukasawa-shoten.com/wp-content/uploads/2020/02/Screenshot_20200221-174454-1.png)
メッセージを受け取り、その文字を返信メッセージとして使うことができました。
今後の予定
ユーザーからのメッセージをまるせんのサーバーで受け取れることが確認できたので、受け取ったメッセージに関連した川柳を返信する機能を追加してみたいと思います。
検索にヒットした川柳のうち、いくつかを選んで返信するイメージです。
また、「今日の一句」や「ナイス川柳」などのワードに対しては、それに該当する川柳を返信する、というような機能も面白いかもしれません。
ある程度の段階でサイトでも告知させていただきますので、もうしばらくお待ちください。
コメント