我希望这不是一个重复的问题,我找不到任何与此相同的内容,所以我想我会发布..
我现在正试图将持久性菜单推送到我的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文档),但这仍然没有提供结果。
有什么东西我做错了或忽视了吗?
非常感谢,
杰
答案 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":为真,则必须。 在您的示例中不是这种情况。您的设置用于"没有按钮,但是免费打字"。