Messaging API は、LINE公式アカウントから友だち登録済みのユーザーにメッセージを送信したり、ユーザー情報を取得したりできる API です。
これまで Messaging API について、
・LINE Developers コンソール
https://kotovuki.co.jp/archives/16761
・Messaging API の利用料金
https://kotovuki.co.jp/archives/17715
・Messaging API を使ってメッセージを送信する方法
https://kotovuki.co.jp/archives/18314
と3回に分けて解説してきました。
今回は「Messaging API を利用したメッセージ受信」について、受信メッセージ処理の簡単な仕組みを作成しながら説明していきます。
このブログで作成する受信メッセージ処理の仕組み
友達になったユーザーが LINE公式アカウントにメッセージを送信すると、そのメッセージをオウム返しする仕組みを作ります。
例えば、ユーザーが「こんにちは!」と送信した場合、LINE公式アカウントが下図のようにユーザーからのメッセージを含んだ返信を行います。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/最終系のトーク画面-1.png)
全体の構成は下図のようになります。
まずは、ユーザーからのメッセージを Webhookサーバーに転送します。
この記事では、Webhookサーバー に Google Apps Script を利用します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-181222.jpg)
次に、Google Apps Script から Claris FileMaker Data API を利用して Claris FileMaker に送信します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-181505.jpg)
最後に、Claris FileMaker から Messaging API を利用して、送信してきたユーザーへメッセージを返信します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-181557.jpg)
Google Apps Script(Webhookサーバー)でユーザーからのメッセージを受信する
ユーザーからのメッセージを Google Apps Script へ転送する設定を行います。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-181222.jpg)
この記事では Messaging API の内容に焦点を当てているため、Google Apps Script の詳細な設定方法は割愛します。Google Apps Script の詳しい情報が必要な場合は、以下の弊社ブログを参照してください。
まず、LINE Developers コンソールを開き、[Messaging API設定]タブに移動します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-19-101241-1024x590.jpg)
Webhook URL に Google Apps Script の URL を設定します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-19-101403-1024x554.jpg)
Webhook の利用 をオンにします。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-19-101506-1024x525.jpg)
これで、LINE公式アカウントがユーザーからメッセージを受け取ると、Google Apps Script へ転送されるようになります。
次に、Google Apps Script でメッセージが受信できることを確認します。以下のコードは、受信したメッセージをスプレッドシートに書き込むというものです。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-182108-1024x273.jpg)
LINE公式アカウントに「こんにちは!」とメッセージを送信します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/最終系のトーク画面のコピー.png)
すると、スプレッドシートにJSONデータが書き込まれました。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-182432-1024x280.jpg)
コード全体はこのようになります。
{
"destination": "Ud53a9e137dcc9632e15e17a1e2f4cf4b",
"events": [
{
"type": "message",
"message": {
"type": "text",
"id": "508939572231799208",
"quoteToken": "m9f8Zv9MPZXQ7JhDlU7V-qSF-WwFNQV1gOEC4XsJkL0XFm70Zoi6UT--lcm45x5l0-MNupjsccz7Db673Lw0yKlFlbyjW4bLlgbBufqztfaIWxrbIUWGj1v4xPdqY-OMFGKfUIYnIaZp20v1Zo0Zfw",
"text": "こんにちは!"
},
"webhookEventId": "01HYA7JK9W03HW90HK30KT0HQ7",
"deliveryContext": {
"isRedelivery": false
},
"timestamp": 1716182928240,
"source": {
"type": "user",
"userId": "U45d747d7de2f03fbd90d0392adcfdbef"
},
"replyToken": "26b76f70ef524204ab008938b27f778e",
"mode": "active"
}
]
}
この JSONデータの内容は、ユーザーの行動によって変わります。今回は “type” が “message” となっており、テキストメッセージを受信したことがわかります。
{
"type": "message",
"message": {
"type": "text",
"text": "こんにちは!"
}
}
例えば、ユーザーが LINE公式アカウントを友だち追加した場合は “type” が “follow”、友達解除した場合は “unfollow” となります。他にもさまざまな種類がありますので、詳しく知りたい方は以下のドキュメントをご確認ください。
参考:メッセージ(Webhook)を受信する(Messaging API リファレンス)
https://developers.line.biz/ja/docs/messaging-api/receiving-messages
Claris FileMaker にレコード を作成する(Claris FileMaker Data API)
ここまでで、ユーザーからのメッセージを含んだ JSONデータが Google Apps Script(Webhook)を経由して受信できることを確認しました。次に、受信したデータを Google Apps Script から Claris FileMaker に転送します。
Claris FileMaker にアクセスする際には、Claris FileMaker Data API を利用します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-181505.jpg)
Google Apps Script から Claris FileMaker へデータを送るには、Claris FileMaker Data API を使用します。下図の Google Apps Script のコードでは、Claris FileMaker のレコードを作成し、受信した JSONデータをフィールドに設定しています。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-21-134405-1024x634.jpg)
この記事では、Claris FileMaker Data API のトークンの取得方法などの詳細な説明については割愛しています。Claris FileMaker Data API の詳細については、以下のリンクを参照してください。
参考:Claris FileMaker Data API ドキュメント
https://kbs192linux.kbscloud.jp//fmi/data/apidoc
ユーザーが LINE 画面から「こんにちは!」と送信すると、Claris FileMaker でレコードが作成され、先ほど Google Apps Script で確認したデータがフィールドに入力されていることが確認できました。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-183156-1024x456.jpg)
ユーザーへメッセージを返信する(応答メッセージを送る)
最後に、Claris FileMaker から送信してきたユーザーへメッセージを返信します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-22-181557.jpg)
ユーザーへの返信は、 Messaging API の「応答メッセージを送る」API を使用します。
参考:応答メッセージを送る(LINE Developers コンソール ドキュメント)
https://developers.line.biz/ja/reference/messaging-api/#send-reply-message
Google Apps Script から Claris FileMaker Data API でレコードを作成した後、Claris FileMaker のスクリプトでユーザーへの返信を行います。Google Apps Script のコードに「メッセージ送信」というスクリプトを実行させる記述を追加します。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-21-134421-1024x671.jpg)
この API を利用するためには、受け取った JSONデータに含まれている “replyToken” というプロパティの値を使用します。
{
"destination": "U7e35fadaf69a2e83b1c986baa2963d1b",
"events": [
{
"type": "message",
"message": {
"type": "text",
"id": "493700155481784390",
"quoteToken": "blACCw0U-cg9_-r_hVw9e1G-iu3XMWOG8mvQHPyntiS4vogR3EwrLQXEJtjCk2KTcl4npbApEJaW3M0SVqAeB3N2lOvKamsq3dUiLABduNCvDIZolH_aKHO3N2rp0x2OiCvkXzWM_Ep7SMsIzZbEqQ",
"text": "こんにちは!"
},
"webhookEventId": "01HNVGZ7ANKZM8G9J39JYP5E68",
"deliveryContext": {
"isRedelivery": false
},
"timestamp": 1707099528071,
"source": {
"type": "user",
"userId": "Ub685b39e4346790d0edf5362f59ec152"
},
"replyToken": "f95c849575c4447d908d0ef846efc9b9",
"mode": "active"
}
]
}
Claris FileMaker から送信する際のリクエストボディには、受信時と同じ “replyToken” を設定します。
{
"replyToken":"f95c849575c4447d908d0ef846efc9b9",
"messages":[
{
"type":"text",
"text":"返信するメッセージ"
}
]
}
ユーザーへ返信するメッセージは、messages 配列に設定します。”text” プロパティには返信するメッセージの内容を入力します。
{
"replyToken":"f95c849575c4447d908d0ef846efc9b9",
"messages":[
{
"type":"text",
"text":"返信するテキストメッセージ"
}
]
}
ユーザーが送信した「こんにちは!」というテキストメッセージを返信に含めるため、以下のように $replyMessage という変数を設定します。(変数 $json には Google Apps Script から受け取った JSON データが入っています)
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/screenshot-2024-05-21-141756.jpg)
“text” プロパティに、先ほど設定した $replyMessage 変数を入れます。
{
"replyToken":"f95c849575c4447d908d0ef846efc9b9",
"messages":[
{
"type":"text",
"text":"$replyMessage
}
]
}
「こんにちは!」と送ってみると、LINE公式アカウントがユーザーが送ったメッセージを含んだ返信をすることを確認できました。
![](https://kotovuki.co.jp/wp-content/uploads/2024/05/最終系のトーク画面-1.png)
まとめ
今回は「Messaging API を利用したメッセージ受信」について解説しました。
ユーザーからのメッセージを受信することで、システム側でさまざまな対応が可能になります。対応の幅が広がることで、自動化の可能性も広がります。
今回の記事までで、 Messaging API の一通りの機能は紹介させていただきました。これまでの記事が Messaging API を利用する方にとって役立つものであれば幸いです。これまで Messaging API シリーズをご覧いただき、ありがとうございました。