LINEミニアプリ「後続のサービスメッセージ」でのハマったところ
BULB加藤です!LINEミニアプリやLIFFの開発に関する情報を発信しています。
今回開発検証する中で「後続のサービスメッセージ」の実装でけっこうハマったので、ポイントをメモっておきます。
サービスメッセージとは
サービスメッセージについては基本の実装をすでにやってみました。こちらに概要とともに記載しています。
↓開発ドキュメント
↓APIリファレンス
サービスメッセージは、ユーザーからのリクエストに対する確認や応答としてユーザーが知るべき情報を、LINEミニアプリから通知する機能です。 たとえば、レストランや宿泊施設の予約の確認通知をユーザーに送信する場合に、サービスメッセージを利用できます。
「後続のサービスメッセージ」は最初に送ったメッセージの情報が必要
たとえば店内オーダーをLINEミニアプリから行った場合
① 注文受付のメッセージ
② 「もうすぐ出来ます」のメッセージ
③ お渡し完了メッセージ
・・・
などなど、場合に応じて複数回のサービスメッセージが送信されることが想定されます。
この時、一番最初の「①注文受付のメッセージ」はユーザーのアクションに対するレスポンスとしてなされますが、それ以降はサービス側から送られます。
これが「後続のサービスメッセージ」。
サービス通知トークンを保存しておく
どのアクションに対する後続メッセージかを識別するために、初回のメッセージを送る時の「サービス通知トークン」が必要となります。
これをDBに保存しておいて、後続のサービスメッセージを送信する時に使います。
後続のサービスメッセージで使用するのは初回で使ったサービス通知トークンでは「ない」!
僕はここで間違えていました・・
初回で使用したサービス通知トークンは2回目以降使用することが出来ません。初回のサービスメッセージ送信時のレスポンスの中に、更新されたサービス通知トークンが入っているのでこれを使います。
公式ドキュメントのこの部分
レスポンスを取得してDBに保存。これを次回のサービスメッセージ送信時に使うと無事にやりたいことができました。
思い込みを捨てて、素直にドキュメントを読み込むのは大切です・・!みなさんも気をつけて開発していきましょう!
Discussion