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. initialize()のハッシュ引数でself.sendを繰り返し呼び出す
- 3. コンソールでjavascript関数を繰り返し呼び出す方法
- 4. 関数を繰り返し呼び出す
- 5. C++:オブジェクトを繰り返して同じメソッドを呼び出す
- 6. NSThreadを繰り返し呼び出す方法は?
- 7. viewDidAppearが繰り返し呼び出されます
- 8. Aureliaバインディング:プロパティゲッターが繰り返し呼び出される
- 9. 繰り返し呼び出しの後でrealloc()が失敗する
- 10. コントローラがSpring MVCで繰り返し呼び出しています
- 11. Hammockを使用してBasicAuthCredentialsで繰り返しREST APIを呼び出す
- 12. 成功するまでajax呼び出しを繰り返す方法
- 13. Androidアプリで関数を繰り返し呼び出す方法は?
- 14. メソッドを繰り返し呼び出すobservableを作成します
- 15. ストアドプロシージャの呼び出し時にMysqld [v5.0.51a]が繰り返し再起動する
- 16. PerlInputFilterHandlerが何度も繰り返し呼び出しています
- 17. C++は1つの関数を繰り返し呼び出しています
- 18. RestletクライアントからRestletサーバーへの繰り返し呼び出しがハングする
- 19. MVC 2アプリケーションで繰り返し呼び出されるjQuery関数
- 20. easymockを使って、voidメソッド呼び出しを繰り返しました
- 21. Movilizer for SAP - 同じムービーレット画面を繰り返し呼び出す方法は?
- 22. UIKeyInputを繰り返し行うと、deleteBackwardsが呼び出されます
- 23. WebメソッドへのAJAX呼び出しの繰り返しの遅延
- 24. 応答に基づく同期AJAX呼び出しの繰り返し
- 25. ViewのonDrawメソッドをAndroidで繰り返し呼び出す条件はありますか?
- 26. ベストプラクティス:セレクタメソッドを呼び出すたびに繰り返しNSTimer間隔を更新する方法
- 27. image.png.Decode()への繰り返し呼び出しによりメモリ不足エラーが発生する
- 28. どのようにJavaでスレッドを繰り返し呼び出すのですか?
- 29. forループ内でカーネルを繰り返し呼び出すCUDAプログラムでパフォーマンスが低下する
- 30. すべての描画コードの後にglOrtho呼び出しを繰り返す必要はありますか?
どのように避けていたのですか...私はどのように2つを区別できますか?あなたのリクエストのサンプルコードを共有できますか?ありがとう – ARK