python - Facebook Messenger 机器人通用模板不起作用

标签 python facebook facebook-graph-api heroku facebook-messenger

我创建了一个运行良好的 Facebook Messenger 机器人。我用过Button Template和图像模板,两者都可以完美工作。但是当我尝试通用模板时,我没有得到任何响应。我只是复制粘贴了 here 中的代码,通过执行适当的修改。

我不知道如何调试。 Facebook Messenger 在消息框中不提供任何输出。我目前正在通过 Heroku 运行该应用程序。

这是我的代码:

def send_message(token, recipient):
    r = requests.post("https://graph.facebook.com/v2.6/me/messages",
     params={"access_token": token},
     data=json.dumps({
      "recipient":{
        "id":recipient
      },
      "message":{
        "attachment":{
          "type":"template",
          "payload":{
            "template_type":"generic",
            "elements":[
               {
                "title":"Welcome to Peter\'s Hats",
                "image_url":"http://www.godominion.com/content/images/feature-img-small-appliance-electronics.png",
                "subtitle":"We\'ve got the right hat for everyone.",
                "default_action": {
                  "type": "web_url",
                  "url": "https://peterssendreceiveapp.ngrok.io/view?item=103",
                  "messenger_extensions": true,
                  "webview_height_ratio": "tall",
                  "fallback_url": "https://peterssendreceiveapp.ngrok.io/"
                },
                "buttons":[
                  {
                    "type":"web_url",
                    "url":"https://petersfancybrownhats.com",
                    "title":"View Website"
                  }           
                ]      
              }
            ]
          }
        }
      }
    }),
     headers={'Content-type': 'application/json'})
    if r.status_code != requests.codes.ok:
      print r.text 

如果有任何帮助,我将不胜感激。

谢谢。

编辑 1:解决方案

我通过注释解决了这个问题:

“messenger_extensions”:true,

"fallback_url": "https://peterssendreceiveapp.ngrok.io/"},

我确信这不是正确的方法。但当我创建一个机器人时,没有实际的链接,这是有效的。

最佳答案

在第二个按钮上,“url”:“https://petersfancybrownhats.com”已损坏。

关于python - Facebook Messenger 机器人通用模板不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43556776/

相关文章:

node.js - 如何以编程方式登录 Facebook oauth2 api

python - 在 Scrapy 中利用 Beautifulsoup

没有 SSL 的 Facebook 登录

Facebook 的应用程序许可消息含糊不清且毫无帮助

facebook - 获取特定 Facebook 位置(页面)的签到

facebook - API 分享计数 Facebook Graph 已弃用?

for-loop - 在 for 循环中使用 'else' 的 Pythonic 方式

python - Jupyter 笔记本 - 无法从其他文件夹导入 python 函数

python - 将行添加到现有文件中

java - 如何在 spring-social-facebook 中处理 ExpiredAuthorizationException(授权已过期)