facebook-messenger webhookをセットアップしました。昨日までは、メッセージを送受信することもできました。しかし、今日、私はユーザーから1つのメッセージを送信するとき、私はサーバーwebhook POST APIで複数の呼び出しを取得しています。彼らは決して止まらないようです。facebook-messenger webhookで繰り返し呼び出す
答えて
私はFacebookから来たすべてのコミュニケーションに応答を送っていました。だから私はACKメッセージにも応答してしまった。次にもう一つのACKが来た。なぜそれが無限ループにつながったのですか?
{
"object":"page",
"entry":[
{
"id":PAGE_ID,
"time":1457764198246,
"messaging":[
{
"sender":{
"id":USER_ID
},
"recipient":{
"id":PAGE_ID
},
"timestamp":1457764197627,
"message":{
"mid":"mid.1457764197618:41d102a3e1ae206a38",
"seq":73,
"text":"hello, world!"
}
}
]
}
]
}
がメッセージ配信だから、コールバック
{
"object":"page",
"entry":[
{
"id":PAGE_ID,
"time":1458668856451,
"messaging":[
{
"sender":{
"id":USER_ID
},
"recipient":{
"id":PAGE_ID
},
"delivery":{
"mids":[
"mid.1458668856218:ed81099e15d3f4f233"
],
"watermark":1458668856253,
"seq":37
}
}
]
}
]
}
、差別化のために我々はentry[0].messaging[0].message
を参照することができ
テキスト:
thisページでは、受け取ったメッセージのために別のオブジェクト構造を見つけることができますこれはユーザーが送信したメッセージにのみ存在します。コールバックまたはポストバックにはこの部分が含まれていません。 応答する前にこれを確認してください。それが存在する場合は、それ以外の場合は応答しないでください。
これらの通話はすべて同じ内容であるか、それとも異なるのですか?あなたはfacebookがあなたに送る正確なメッセージ文字列を記録し、それらに何が含まれているか見ることができます。
たとえば、ユーザーがメッセージを受信したことを通知するメッセージ配信コールバックがあります。 JSONは次のようになります。
{'delivery': {'mids': ['mid.146174459xxx:30a42600a95exxxxx'], 'seq': 429, 'watermark': 146174459xxx}, 'recipient': {'id': xxxxxxxx}, 'sender': {'id': xxxxxx}}
編集:また、あなたは、Facebookがあなたのウェブフックからのエラーを受信した場合ないがHTTPステータス200で着信を確認している場合かもしれないメッセージは次のようになります複数回送信されます。
私はres.status(200)でループしているメッセージを確認しようとしましたが、入り続けます。メッセージが受信確認されているかどうかをテストする方法はありますか? – hoodsy
のFacebookのメッセンジャーで作業する場合、あなたがメッセージを送信した後、アカウントに二つのことを取る必要があります。
あなたはこの意志ウェブフックを使用して作業しているので、イベントの1つが発生するたびにトリガされます(メッセージを受信し、送信したメッセージを配信し、ユーザーがメッセージを読み込みます)。たとえば、Webフックでmessage_deliveriesをアクティブにして、メッセージをアクションとして送信すると、ループが終了します。
これを処理する適切な方法は、ベースコードにあります。 PHPの例:
// Skipping delivery messages
if (!empty($message['delivery'])) {
#Do something here if you want
continue;
}
// Skipping read messages
if (!empty($message['read'])) {
#Do something here if you want
continue;
}
希望すると助かります!
私の問題は似ていましたが、私は複数のメッセージ配信ポストを取得していました。数時間の不満の後、メッセージがすべてのデバイスに配信されるたびにMessage Delivered callbackが呼び出されることに気付きました。したがって、Webアプリとモバイルアプリの両方にログインしている場合は、コールバックが2回呼び出されます。
これは私が3つの同一配送確認を得る理由です。本当にありがとう ! – sonlexqt
- 1. beginBackgroundTaskWithExpirationHandlerを繰り返し呼び出す
- 2. クラスを繰り返し呼び出し
- 3. 各関数を繰り返し関数スライスで呼び出す
- 4. Excell whileループでサブ呼び出しを繰り返す
- 5. initialize()のハッシュ引数でself.sendを繰り返し呼び出す
- 6. コンソールでjavascript関数を繰り返し呼び出す方法
- 7. アンドロイドでAndroidグローバルレイアウトリスナーを繰り返し呼び出す
- 8. Facebookメッセンジャーのアプリは、デバッグ手順を複雑にするwebhookを繰り返し呼び出しました。
- 9. std :: chronoは繰り返しQueryPerformanceFrequencyを呼び出しますか?
- 10. C++:オブジェクトを繰り返して同じメソッドを呼び出す
- 11. NSThreadを繰り返し呼び出す方法は?
- 12. JavaScriptが同じイベントを繰り返し呼び出す
- 13. 関数を繰り返し呼び出す
- 14. Reactネイティブコンポーネントは繰り返し呼び出されます。
- 15. viewDidAppearが繰り返し呼び出されます
- 16. メソッドの呼び出しを繰り返す
- 17. react + redux componentdidmount()が繰り返し呼び出されます
- 18. API.AI:同じインテントを繰り返し呼び出す方法
- 19. std :: future :: getを繰り返し呼び出す
- 20. 繰り返し呼び出し後のRダイジェストの変更点
- 21. ローカル変数または繰り返し呼び出し?
- 22. Aureliaバインディング:プロパティゲッターが繰り返し呼び出される
- 23. PushNotificationIOSレジスタハンドラが繰り返し呼び出される
- 24. 最初の呼び出しの後でAjax呼び出しを繰り返す方法
- 25. python pilライブラリ呼び出しと繰り返しデータを返すメソッド
- 26. app.buildCarousel()を呼び出すときにforループ内でaddItemsを繰り返し呼び出す方法
- 27. FB-Messangerから同じメッセージを繰り返し返すWebhook
- 28. 繰り返し呼び出しの後でrealloc()が失敗する
- 29. Hammockを使用してBasicAuthCredentialsで繰り返しREST APIを呼び出す
- 30. コントローラがSpring MVCで繰り返し呼び出しています
どのように避けていたのですか...私はどのように2つを区別できますか?あなたのリクエストのサンプルコードを共有できますか?ありがとう – ARK