facebook messenger curl 请求返回 <Response [400]>

问题描述

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

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)

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

解决方法

您需要将 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...