Coexistence 登録後に「This authorization code has expired」と表示される
Meta の Embedded Signup が完了すると、起動元のプラットフォームに有効期間の短いコードが渡されます。このコードは 30 秒以内にアクセストークンへ交換する必要があります。交換が遅れた場合や、以前の試行で発行されたコードを使った場合、Meta は認可コードが期限切れであると応答します。フローをもう一度実行すると、新しいコードが発行されます。
Embedded Signup が返す交換用トークンコードに Meta が設定している有効期間です。
Meta によると、トークンの交換はサーバー間のリクエストで行う必要があり、クライアント側では行えません。
オンボーディング後、フローをやり直す必要が生じるまでに、プラットフォームが Coexistence の番号の履歴を同期できる時間です。
どのコードが期限切れになったのですか?
企業が Embedded Signup を完了すると、Meta はアセット ID と交換用トークンコードを、ポップアップを開いたブラウザーのウィンドウに返します。プラットフォームはそのコードを自社のサーバーに送り、サーバーがアプリ ID とアプリシークレットを使って Meta の oauth access_token エンドポイントを呼び出し、ビジネストークンに交換します。
Meta の実装ガイドでは、タイミングが明確に定められています。交換用トークンコードの有効期間は 30 秒で、プラットフォームは期限が切れる前に交換できる状態にしておく必要があります。それを過ぎて交換しようとすると拒否され、その拒否が「This authorization code has expired」と表示されます。企業側がポップアップをゆっくり完了したことが原因ではありません。コードが返された時点から時間が数えられます。
ポップアップの完了が遅れたり、2 回実行したりすると、なぜ起きるのですか?
交換が制限時間を過ぎてしまう状況はいくつかあります。
フローの完了時にブラウザーのタブがバックグラウンドにあった、またはノート PC がスリープしていた場合、コードは発行からかなり経ってからプラットフォームのサーバーに届きます。プラットフォームのサーバーが、交換をすぐに行わず他の処理の後ろに回した場合もあります。また、利用者がフローを 2 回開いて両方を完了し、2 つ目の完了後に 1 つ目のウィンドウのコードを交換した場合にも起こります。
テスト中には 4 つ目の原因があります。ブラウザーのコンソールからコードをコピーし、cURL や Postman で手作業で交換するケースです。Meta のガイドはまさにこの点に注意を促しており、開始前に交換リクエストを準備しておくよう案内しています。
接続を完了するにはどうすればよいですか?
1 つのウィンドウでフローを最初からやり直し、プラットフォームのページを前面に表示したまま完了させてください。完了のたびに新しいコードが返されるので、プラットフォームはそれをすぐに交換すれば十分です。
Coexistence の番号の場合は、速やかに行ってください。企業がフローを完了した時点で、Meta は WhatsApp Business アカウントを変換します。プラットフォームが顧客のオンボーディングを行ってから、メッセージ履歴を同期できる時間は 24 時間です。それを過ぎると、企業をいったんオフボーディングし、フローを最初からやり直す必要があります。
プラットフォーム側の恒久的な対策は、コードが届いた瞬間に、他のオンボーディング手順より先にサーバーで交換することです。
よくある間違い
- 同じコードでトークンの交換を再試行すること。コードは 30 秒で期限切れとなり、元には戻りません。
- 2 つのウィンドウで同時にサインアップを実行すること。有効なのは、交換する試行で発行されたコードだけです。
- ブラウザーからコードを交換すること。Meta は、アプリシークレットを用いたサーバー間リクエストでの交換を求めています。
EasyCoexistence は、Embedded Signup がコードを返すと同時にサーバーで交換し、各試行を接続のタイムラインに記録します。そのため、コードの失効は漠然とした失敗ではなく、日時付きのイベントとして確認できます。
よくある質問
企業は番号を接続できたのですか?
企業は Meta のフローを完了しましたが、プラットフォームがコードを有効なトークンに交換できなかったため、まだその番号を操作できません。フローをもう一度実行すれば、新しいコードが発行されます。
コードの有効期間を延ばせますか?
いいえ。30 秒の有効期間は Meta が定めており、どのプラットフォームも延長できません。
WhatsApp Business アプリには影響がありますか?
いいえ。この問題を解決している間も、アプリは携帯電話で通常どおり動作します。
アクセストークンの期限切れと同じものですか?
いいえ。これは有効期間の短いサインアップ用コードです。正常に動作している接続でアクセストークンが期限切れになった場合は、エラー 190 が返されます。
続きを読む
始める準備はできましたか?
WhatsApp Coexistence の設定は数分で完了し、数か月もかかりません。スマートフォン上のアプリも引き続き使えます。
無料トライアルを始める確認日