【问题标题】:FB Messenger Persistent Menu Nest within a nest?FB Messenger Persistent Menu 嵌套在一个嵌套中?
【发布时间】:2018-01-28 03:45:18
【问题描述】:

在嵌套菜单中获取嵌套菜单时遇到问题。有谁知道只能降级吗?或者你可以做两个吗?

我这里有一个嵌套在嵌套中的菜单 - 但我不断收到此错误: {"error":{"message":"(#100) 需要参数之一:get_started,persistent_menu,target_audience,whitelisted_domains,greeting,account_linking_url,payment_settings,home_url","type":"OAuthException","code": 100,"fbtrace_id":"H1RDxO9wOcL"}}

这是我的代码

"persistent_menu":[
>   {
>     "locale":"default",
>     "composer_input_disabled": false,
>     "call_to_actions":[
>       {
>         "title":" Menu",
>         "type":"nested",
>         "call_to_actions":[
>           {
>             "title":"About",
>             "type":"postback",
>             "payload":"ABOUT"
>           },
>           {
>             "title":"Tips",
>             "type":"nested",
>             call_to_actions":[    
>                     {
>                     "title":"Hours",
>                     "type":"postback",
>                     "payload":"Hours"
>                     },{
>                     "title":"Restroom",
>                     "type":"postback",
>                     "payload":"Restroom"
>                     },{
>                     "title":"Other",
>                     "type":"postback",
>                     "payload":"Other"
>                     },
>               ]
>           },
>           {
>             "title":"Leaderboard",
>             "type":"postback",
>             "payload":"Leaderboard"
>           }
>         ]
>       },
>     ]
>   }
> ]
> }' "https://graph.facebook.com

【问题讨论】:

    标签: facebook facebook-messenger


    【解决方案1】:

    使用您自己的页面访问令牌发布到 Messenger Profile API。您应该是页面管理员才能执行此操作。

    https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>
    

    有以下数据

    {"persistent_menu":[{"locale":"default","composer_input_disabled":false,"call_to_actions":[{"title":" Menu","type":"nested","call_to_actions":[{"title":"About","type":"postback","payload":"ABOUT"},{"title":"Tips","type":"nested","call_to_actions":[{"title":"Hours","type":"postback","payload":"Hours"},{"title":"Restroom","type":"postback","payload":"Restroom"},{"title":"Other","type":"postback","payload":"Other"}]},{"title":"Leaderboard","type":"postback","payload":"Leaderboard"}]}]}]}
    

    我在自己的机器人上进行了测试,希望这对你也有用。谢谢。

    【讨论】:

      【解决方案2】:

      https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/persistent-menu

      永久菜单的要求:

      • 设置开始按钮。
      • 拥有与机器人关联的页面的“管理员”角色。

      如果您没有创建任何 get_started 按钮,您应该创建一个类似于以下 curl 请求的按钮。 get_started 按钮是创建persistent_menu 的必要条件。

      curl -X POST -H "Content-Type: application/json" -d '{ 
        "get_started":{
          "payload":"START_PAYL"
        }
      }' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<API_ACCESS_TOKEN>"
      

      如果您已经有一个 get_started 按钮,现在您可以运行以下 curl 请求来创建 persistent_menu

      curl -X POST -H "Content-Type: application/json" -d '{
        "persistent_menu":[
          {
            "locale":"default",
            "composer_input_disabled": true,
            "call_to_actions":[
              {
                "title":"My Account",
                "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":false,
            "call_to_actions":[
              {
                "title":"Pay Bill",
                "type":"postback",
                "payload":"PAYBILL_PAYLOAD"
              }
            ]    
          }
        ]
      }' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<API_ACCESS_TOKEN>" 
      

      重要提示:持久菜单的顶级菜单项数组。 最多允许 3 个项目。 最多支持两个嵌套菜单。

      【讨论】:

        【解决方案3】:

        您可以使用 Botsnacks 快速解决此问题以及更多其他问题。 https://github.com/4handheld/botsnacks 。 一切都是自动化的,包括入门负载、菜单等等。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-08
          • 2015-10-18
          • 1970-01-01
          • 1970-01-01
          • 2017-10-26
          • 2023-04-02
          相关资源
          最近更新 更多