Постоянное меню моего чата в Facebook работало нормально до тех пор, пока несколько дней назад, однажды из нескольких попыток, когда я нажимал на постоянный пункт меню, возникало всплывающее сообщение об ошибке:
Действие не выполнено
При доставке вашего сообщения боту произошла ошибка.
Пожалуйста, попробуйте позже.
Это происходит время от времени, и я проверил, что когда это происходит, сторона моего PHP-кода не получала никакой обратной передачи от Facebook. Когда ошибок нет, обратная передача работает нормально. Кто-нибудь еще получает эту ошибку?
Мое постоянное меню настроено так:
//-----------Persistent Menu
$url = 'https://graph.facebook.com/v2.6/me/messenger_profile?access_token='.$access_token;
$ch = curl_init($url);
$jsonData = '{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"View in Chinese",
"type":"postback",
"payload":"mainMenu"},
{
"title":"View in English",
"type":"postback",
"payload":"mainMenuEN"}
]
},
{
"locale":"zh_TW",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"View in Chinese",
"type":"postback",
"payload":"mainMenu"},
{
"title":"View in English",
"type":"postback",
"payload":"mainMenuEN"}
]
},
{
"locale":"en_US",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"View in Chinese",
"type":"postback",
"payload":"mainMenu"},
{
"title":"View in English",
"type":"postback",
"payload":"mainMenuEN"}
]
}
]
}';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
У меня такая же проблема. Это было исправлено следующими изменениями:
App settings -> [Products] Messenger -> Settings -> Webhooks -> Edit events -> Add messaging_postbacks
Возможно, вы забыли добавить событие, и FB не может отправлять постбэк / полезную нагрузку каких-либо кнопок на сервер.
Тщательно проверьте, правильно ли указан тип кнопок: web_url
или же postback
в нижнем регистре.
Имейте в виду также, что постоянное меню требует pages_messaging permission
в соответствии с FB Developers Doc
Если у вас уже есть messaging_postbacks
включен, но все еще получаю эту ошибку:
Page Access Token
вы используете, вероятно, нуждается в обновлении в вашем webhook.
Вернитесь на панель инструментов приложения для разработчиков. Выбрать Messenger
>> Settings
,
Прокрутите вниз до "Token Generation"
раздел:
Выберите свою страницу в раскрывающемся списке и скопируйте новый токен доступа для использования в своем веб-крюке.
У меня была та же самая проблема, и это работало для меня после поиска повсюду ответа.