メッセンジャーボットのウェルカムメッセージの設定中に奇妙なエラーが発生します。私は同じコードを使用していて(以下に示すように)、昨夜まで正常に機能しています。 cURLと Postman の両方で試してみました。どちらも機能しません。
curl -X POST -H "Content-Type: application/json" -d '{
"setting_type":"call_to_actions",
"thread_state":"new_thread",
"call_to_actions":[
{
"message":{
"text":"Welcome to My Company!"
}
}
]
}' "https://graph.facebook.com/v2.6/<PAGE_ID>/thread_settings?access_token=<PAGE_ACCESS_TOKEN>"
上記のコードを実行するとエラーメッセージが表示されます:
{"error":{"message":"(#100) Invalid keys \"message\" were found in param \"call_to_actions[0]\".","type":"OAuthException","code":100,"fbtrace_id":"Hn42Wa+hapI"}}%
次のコードでウェルカムメッセージを削除しようとすると正常に機能するため、PAGE_IDとPAGE_ACCESS_TOKENの両方が正しいことを確認できます。
curl -X POST -H "Content-Type: application/json" -d '{
"setting_type":"call_to_actions",
"thread_state":"new_thread",
"call_to_actions":[
{
"message":{
"text":"Welcome to My Company!"
}
}
]
}' "https://graph.facebook.com/v2.6/<PAGE_ID>/thread_settings?access_token=<PAGE_ACCESS_TOKEN>"
また、私が使用しているコードは、 Facebookの公式APIドキュメント に示されているものとまったく同じです。 「メッセージ」が有効なキーではないと言っている理由がわかりません。誰かが同じ問題を経験していますか? FacebookはAPIを変更しましたか?
どんな助けでも大歓迎です!
docs が更新されました。ペイロードをpayload
パラメータ(UTF-8でエンコードされた文字列)で定義する必要があります。例:
"call_to_actions":[
{
"payload":"USER_DEFINED_PAYLOAD"
}
]
更新されたドキュメント:
https://developers.facebook.com/docs/messenger-platform/thread-settings/greeting-text
例:
curl -X POST -H "Content-Type: application/json" -d '{
"setting_type":"greeting",
"greeting":{
"text":"Welcome to My Company!"
}
}' "https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN"
同じ問題が発生して修正します。リクエストのjsonは
let messageData = {
"setting_type":"call_to_actions",
"thread_state":"new_thread",
"call_to_actions":[
{
"payload":"welcome_payload"
}
]
}
request({
url: 'https://graph.facebook.com/v2.6/me/thread_settings',
qs: {access_token:token},
method: 'POST',
json: {
messageData
}
}
しかし、それは機能せず、ログには「setting_type」がないと表示されます= = aこれを試してください
request({
url: 'https://graph.facebook.com/v2.6/me/thread_settings',
qs: {access_token:token},
method: 'POST',
json: {
setting_type:"call_to_actions",
thread_state:"new_thread",
call_to_actions:[
{
"payload":"welcome_payload"
}
]
}
}
それは私のために働きます。