使用Python请求POST和Intercom API时发生HTTP 400错误



我正在尝试使用他们的API从Intercom中提取对话列表,根据更新日期进行限制。

他们的网站(https://developers.intercom.com/intercom-api-reference/reference#search-表示

要搜索对话,您需要向发送POST请求https://api.intercom.io/conversations/search.这将接受查询对象,该对象将定义您的筛选器以便进行搜索用于对话。

所以我尝试了:

import requests    
url = 'https://api.intercom.io/conversations/search'
data_params = {
"query":  {
"field": "updated_at",
"operator": ">",
"value": 1560436784
}
}
headers = {'Authorization' : 'Bearer ******************', 'Accept':'application/json', 'Content-Type':'application/json'}
r = requests.post(url, headers = headers, data = data_params)
r.status_code

这总是会遇到一个400'Bad Request'的错误,但我很难理解为什么。我也在后通话中尝试过json = data_params,但结果相同。我很感激代码可能不是完全可复制的,因为它需要经过身份验证的API连接,但如果有任何明显的错误,最好知道!

显然,这里似乎没有obviously error

对于CCD_ 4。我认为你应该检查一下你的data_params,如果有什么东西丢失或格式不好。也是headers

您应该尝试将data_params字典转换为json。

我用json.dumps进行了测试,这似乎奏效了:

import json
url = 'https://api.intercom.io/conversations/search'
data_params = {
"query":  {
"field": "updated_at",
"operator": ">",
"value": 1560436784
}
}
headers = {'Authorization' : 'Bearer ******************', 'Accept':'application/json', 'Content-Type':'application/json'}
r = requests.post(url, headers = headers, data = json.dumps(data_params))
print(r.status_code)

最新更新