Facebook messenger机器人应用程序 - 持久性菜单没有出现

时间:2017-07-10 00:24:24

标签: python facebook facebook-graph-api

我正在构建一个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时,我看不到任何菜单!

Enter image description here

奇怪的是,在我的服务器webhook端点上,我也会收到“开始”按钮按回发。这样才有用。

我的webhook有权限:messages, messaging_postbacks, messaging_optins, message_deliveries, message_reads

我试过了:

  • 在网上刷新
  • 在iOS上杀死应用并重新启动它
  • 删除对话并重新加载bot
  • 等待30分钟并再次尝试以上所有

这些都没有奏效。我仍然在我的Messenger iOS应用程序中看到一个加载微调器 - 也许Facebook的服务器在更新我的应用程序时速度很慢? 30分钟似乎非常极端。

我的JSON是否存在持久菜单设置错误?这似乎是唯一可能出错的事情。

知道我做错了吗?

我回来了,已经超过24小时,但仍然没有菜单出现。

2 个答案:

答案 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>