Ответ 1
Теперь docs обновлены, вам нужно определить свою полезную нагрузку в параметре payload
(кодированная строка UTF-8), например:
"call_to_actions":[
{
"payload":"USER_DEFINED_PAYLOAD"
}
]
Я получаю странную ошибку при настройке приветственного сообщения для моего бот-сервера Messenger. Я использовал тот же код (как показано ниже), и он только что работал нормально до прошлой ночи. Я попробовал это с обоими 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>"
Кроме того, код, который я использую, точно такой же, как показано в официальном документе API Facebook. Я не понимаю, почему это сообщение "сообщение" не является допустимым ключом. Кто-нибудь испытывает ту же проблему? 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"
}
]
}
}
он работает для меня.
Эта ошибка произошла из-за изменения API.
Новый вызов:
curl -X POST -H "Content-Type: application/json" -d '{
"setting_type":"call_to_actions",
"thread_state":"new_thread",
"call_to_actions":[{
"payload":"START"
}]
}' "https://graph.facebook.com/v2.6/<PAGE_ID>/thread_settings?access_token=<PAGE_TOKEN>"
Просто добавьте полезную нагрузку, например {"payload":"START"}
Если пользователь нажимает кнопку "Начало работы", вы получаете эту полезную нагрузку в своем сообщенииHandler (webhook). Проверьте, если $incomingMessage == "START"
и отправьте назад структурированное сообщение или что угодно.
Сообщения, подобные ранее, больше не поддерживаются.
Отчет об ошибке: https://developers.facebook.com/bugs/1751749508372552/