FB Messenger 无法收到消息

2024-04-22 22:55:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用新发布的messenger平台api设置messenger聊天机器人。我在Heroku上安装了一个Python Flask服务器,并对这些指令进行了调整,试图让我的页面接收服务器发送给它的消息:https://developers.facebook.com/docs/messenger-platform/quickstart

到目前为止,我已经验证了一个回调url,并且当我在FB上发布到我的页面时能够接收消息(即当我向链接到FB上的应用程序的页面发送消息时,我的heroku日志显示正在接收post请求)。但是,当我尝试从服务器向应用程序发送消息时,我收到以下JSON错误响应:

400: {"error":{"message":"(#100) param recipient must be non-empty.","type":"OAuthException","code":100,"fbtrace_id":"B3cni+LAmYU"}}

我正在使用请求库向页面发送请求。下面是我用来处理POST请求的代码:

^{pr2}$

我尝试过无数种不同类型的“recipients”元素的键/值编码到json中,但是FB graph服务似乎都无法理解它们。如何对我的请求进行编码,以便FB知道“收件人”参数是什么?在

谢谢!在


编辑:

结果我不得不在POST请求的头中手动设置编码类型。添加以下行使我可以向FB发送可解释的文本响应:

headers = {'content-type':  'application/json'}

Tags: 服务器apijson应用程序消息类型编码heroku
2条回答

你可以试试这些,两种都可以

headers = {'Content-type': 'application/json'}
response = requests.post(url, data=json.dumps(send_back_to_fb), headers=headers)

或者

^{pr2}$

使用facebook messenger平台的python库怎么样?在

https://github.com/conbus/fbmq

from flask import Flask, request
from fbmq import Page

page = fbmq.Page(PAGE_ACCESS_TOKEN)

@app.route('/webhook', methods=['POST'])
def webhook():
  page.handle_webhook(request.get_data(as_text=True))
  return "ok"

@page.handle_message
def message_handler(event):
  page.send(event.sender_id, "HI!!!")

相关问题 更多 >