永久菜单 POST 成功但不工作

Persistent Menu POST Success but not working

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

我现在正在尝试将持久菜单推送到我的 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
    }
]
}'

此操作返回 {"result": "success"},但是在我的 FB 页面上我看不到我的 Messenger 有任何变化,我也试过了删除对话并重新启动(根据 FB Messenger 文档),但这仍然没有提供结果。

我是不是做错了或忽略了什么?

非常感谢,

周杰伦

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

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

这应该是 return 一个语法错误,但目前正在无提示地失败。我会举报的。

正如 amuramoto 所写,这可能是因为您没有为语言环境 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 ---- 数组 < menu_item > ---- 永久菜单的顶级菜单项数组。最多允许 3 个项目。最多支持两个嵌套菜单。

如果 "composer_input_disabled" 是必需的:true。 在您的示例中情况并非如此。您的设置将用于 "no buttons, but free typing".