我正在构建一个Facebook聊天机器人应用程序。我使用HTTP POST和有效的页面访问令牌为持久性菜单设置了一些JSON。
要检查我是否正确设置,我会使用工作令牌向https://graph.facebook.com/v2.6/me/messenger_profile?fields=persistent_menu&access_token=TOKEN
发送GET请求。
我得到的回应是:
{u'data': [{u'persistent_menu': [{u'composer_input_disabled': False,
u'locale': u'en_US'},
{u'call_to_actions': [{u'call_to_actions': [{u'payload': u'whatever',
u'title': u'action1',
u'type': u'postback'},
{u'payload': u'whatever 2',
u'title': u'action2',
u'type': u'postback'}],
u'title': u'my title',
u'type': u'nested'},
{u'title': u'my title URL',
u'type': u'web_url',
u'url': u'http://google.com/',
u'webview_height_ratio': u'full'}],
u'composer_input_disabled': False,
u'locale': u'default'}]}]}
这就是我所说的,所以到目前为止一切都很好。
但是当我在iOS上打开Messenger应用程序或在Chrome桌面Mac OS X上访问messenger.com
时,我看不到任何菜单!
奇怪的是,在我的服务器webhook端点上,我也会收到“开始”按钮按回发。这样才有用。
我的webhook有权限:messages, messaging_postbacks, messaging_optins, message_deliveries, message_reads
。
我试过了:
这些都没有奏效。我仍然在我的Messenger iOS应用程序中看到一个加载微调器 - 也许Facebook的服务器在更新我的应用程序时速度很慢? 30分钟似乎非常极端。
我的JSON是否存在持久菜单设置错误?这似乎是唯一可能出错的事情。
知道我做错了吗?
我回来了,已经超过24小时,但仍然没有菜单出现。
答案 0 :(得分:0)
尝试使用Postman应用程序并使用带有以下参数的POST:
https://graph.facebook.com/v2.6/me/thread_settings?access_token=xxx
用这个填充身体:
{
"setting_type": "call_to_actions",
"thread_state": "existing_thread",
"call_to_actions": [
{"type": "web_url",
"title": "test",
"url": "https://test.com"
},
{
"type": "postback",
"title": "Help",
"payload": "help"
},
{
"type": "postback",
"title": "Website",
"payload": "web"
}
]
}
您可以在文档中阅读有关持久性菜单的更多信息:https://developers.facebook.com/docs/messenger-platform/messenger-profile/persistent-menu
答案 1 :(得分:0)
您可以形成下面给出的请求正文:
{
"get_started":{
"payload":"<GET_STARTED_PAYLOAD>"
},
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": true,
"call_to_actions":[
{
"title":"Menu",
"type":"nested",
"call_to_actions":[
{
"title":"Pay Bill",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
},
{
"title":"History",
"type":"postback",
"payload":"HISTORY_PAYLOAD"
},
{
"title":"Contact Info",
"type":"postback",
"payload":"CONTACT_INFO_PAYLOAD"
}
]
},
{
"type":"web_url",
"title":"Latest News",
"url":"http://www.messenger.com/",
"webview_height_ratio":"full"
}
]
},
{
"locale":"zh_CN",
"composer_input_disabled":true,
"call_to_actions":[
{
"title":"Pay Bill",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
您可以跟进的uri是:
https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>