【问题标题】:facebook messenger curl request returns <Response [400]>facebook messenger curl 请求返回 <Response [400]>
【发布时间】:2021-04-26 20:51:58
【问题描述】:

我是 messenger API 的新手,我想使用 curl 发布请求发送消息,这是我的代码:

import requests

ACCESS_TOKEN = an Active access token

fb_url = "https://graph.facebook.com/v10.0/me/messages"
data = {
'recipient': '{"id":4098757906843152}',
"message": {
"text": "hello, world!"
},
"messaging_type": "MESSAGE_TAG",
"tag": "ACCOUNT_UPDATE"
}

params = {'access_token': ACCESS_TOKEN}
resp = requests.post(fb_url, params=params, data=data)
print(resp)

不幸的是,我收到了这条消息 任何帮助将不胜感激

【问题讨论】:

  • 响应正文是什么?
  • Python 会自动将您的字典转换为 JSON 吗?
  • 我也不确定'{"id":4098757906843152}' 应该用单引号括起来
  • @WizKid
  • @AndrewL 不,它不需要,但我需要 JSON 吗?

标签: facebook curl facebook-graph-api facebook-messenger-bot messenger


【解决方案1】:

您需要将data 更改为json。 见https://stackoverflow.com/a/26344315/603756

从 Requests 版本 2.4.2 开始,您可以在调用中使用 json= 参数(接受字典)而不是 data=(接受字符串)

import requests

ACCESS_TOKEN = '<access_token>'

fb_url = 'https://graph.facebook.com/v10.0/me/messages'
data = {
    'recipient': '{"id":<psid>}',
    "message": {
    "text": "hello, world!"
    }
}
params = {'access_token': ACCESS_TOKEN}

resp = requests.post(fb_url, json=data, params=params)
print(resp)

【讨论】:

  • 确实是这个问题,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多