💡

LINEミニアプリ「後続のサービスメッセージ」でのハマったところ

2021/06/11に公開

BULB加藤です!LINEミニアプリやLIFFの開発に関する情報を発信しています。

今回開発検証する中で「後続のサービスメッセージ」の実装でけっこうハマったので、ポイントをメモっておきます。

サービスメッセージとは

サービスメッセージについては基本の実装をすでにやってみました。こちらに概要とともに記載しています。
https://zenn.dev/bulb/articles/b10f61b983a949

↓開発ドキュメント
https://developers.line.biz/ja/docs/line-mini-app/develop/service-messages/

↓APIリファレンス
https://developers.line.biz/ja/reference/line-mini-app/

サービスメッセージは、ユーザーからのリクエストに対する確認や応答としてユーザーが知るべき情報を、LINEミニアプリから通知する機能です。 たとえば、レストランや宿泊施設の予約の確認通知をユーザーに送信する場合に、サービスメッセージを利用できます。

「後続のサービスメッセージ」は最初に送ったメッセージの情報が必要

たとえば店内オーダーをLINEミニアプリから行った場合

① 注文受付のメッセージ
② 「もうすぐ出来ます」のメッセージ
③ お渡し完了メッセージ
・・・

などなど、場合に応じて複数回のサービスメッセージが送信されることが想定されます。

この時、一番最初の「①注文受付のメッセージ」はユーザーのアクションに対するレスポンスとしてなされますが、それ以降はサービス側から送られます。

これが「後続のサービスメッセージ」。

サービス通知トークンを保存しておく

どのアクションに対する後続メッセージかを識別するために、初回のメッセージを送る時の「サービス通知トークン」が必要となります。

これをDBに保存しておいて、後続のサービスメッセージを送信する時に使います。

後続のサービスメッセージで使用するのは初回で使ったサービス通知トークンでは「ない」!

僕はここで間違えていました・・

初回で使用したサービス通知トークンは2回目以降使用することが出来ません。初回のサービスメッセージ送信時のレスポンスの中に、更新されたサービス通知トークンが入っているのでこれを使います。

公式ドキュメントのこの部分
https://developers.line.biz/ja/reference/line-mini-app/#send-service-message-response

レスポンスを取得してDBに保存。これを次回のサービスメッセージ送信時に使うと無事にやりたいことができました。

思い込みを捨てて、素直にドキュメントを読み込むのは大切です・・!みなさんも気をつけて開発していきましょう!

CoLife Developers

Discussion