我正在构建一个 Facebook 聊天机器人应用程序。我已经使用 HTTP POST 和有效的页面访问令牌通过一些 JSON 设置了持久菜单。
为了检查我的设置是否正确,我发出了 GET 请求https://graph.facebook.com/v2.6/me/messenger_profile?fields=persistent_menu&access_token=TOKEN
带有工作令牌。
我得到的回应是:
{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 应用程序或访问messenger.com
在 Chrome 桌面 Mac OS X 上,我看不到任何菜单!
奇怪的是,在我的服务器 webhook 端点上,我也确实收到了“开始”按钮按下回发。所以这是有效的。
我的 webhook 具有权限:messages, messaging_postbacks, messaging_optins, message_deliveries, message_reads
.
我努力了:
- 在网页上刷新
- 在 iOS 上杀死应用程序并重新启动它
- 删除对话并重新加载机器人
- 等待 30 分钟并再次尝试以上所有操作
但这些都不起作用。我仍然在 Messenger iOS 应用程序中看到加载旋转图标 - 也许 Facebook 的服务器更新我的应用程序速度很慢?不过30分钟似乎相当极端。
我的持久菜单设置 JSON 有问题吗?这似乎是唯一可能出错的地方。
知道我做错了什么吗?
我回来查看,已经超过 24 小时了,仍然没有出现菜单。