持久菜单POST成功但不起作用

时间:2017-12-11 02:04:28

标签: facebook facebook-graph-api facebook-messenger facebook-chatbot

我希望这不是一个重复的问题,我找不到任何与此相同的内容,所以我想我会发布..

我现在正试图将持久性菜单推送到我的FB页面,我使用以下代码从POSTMAN发布:

  curl -X POST -H "Content-Type: application/json" -d '{
"persistent_menu":[
    {
    "locale":"default",
    "composer_input_disabled":true,
    "call_to_actions":[
        {
        "title":"Info",
        "type":"nested",
        "call_to_actions":[
            {
            "title":"web_url",
            "type":"postback",
            "payload":"http://www.techiediaries.com"
            },
            {
            "title":"web_url",
            "type":"postback",
            "payload":"http://www.techiediaries.com"
            }
        ]
        },
        {
        "type":"web_url",
        "title":"Visit website ",
        "url":"http://www.techiediaries.com",
        "webview_height_ratio":"full"
        }
    ]
    },
    {
    "locale":"en_US",
    "composer_input_disabled":false
    }
]
}'

此操作正在返回 {"结果":"成功"} ,但是在我的FB页面上,我无法看到对我的信使有任何更改,我也是尝试删除对话并重新启动(根据FB messenger文档),但这仍然没有提供结果。

有什么东西我做错了或忽视了吗?

非常感谢,

2 个答案:

答案 0 :(得分:0)

这是因为数组中的第二个对象没有指定按钮:

{
  "locale":"en_US",
  "composer_input_disabled":false
}

这应该返回语法错误,但目前无声地失败。我会举报。

答案 1 :(得分:0)

正如amuramoto写的那样,可能是因为你没有为locale en_US提供任何call_to_actions(按钮)而你正在使用en_US。您可以使用其他语言环境(如en_UK)或使用西班牙语facebook帐户进行测试。

然而,这不是一个错误。正如文档所述:https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/persistent-menu?locale=en_US

call_to_actions ---- Array< menu_item> ---- 持久性菜单的顶级菜单项数组。最多允许3件物品。最多支持两个嵌套菜单。

如果" composer_input_disabled":为真,则必须。 在您的示例中不是这种情况。您的设置用于"没有按钮,但是免费打字"。