0

我在 linux 中使用 curl 将数据发布到 asana 并且工作正常。

curl -H "Authorization: Bearer <mytoken>" https://app.asana.com/api/1.0/tasks/101/stories -d "text=hello world"

但是如果我对 python 使用 requests 库,结果是 400

response = requests.post("https://app.asana.com/api/1.0/tasks/101/stories", auth=(self.asana.token_uri, ""), params = "text=repo_name")
4

2 回答 2

0

您需要在 python 中的请求中添加相同的“Authorization: Bearer”令牌标头。类似于这个答案:

https://stackoverflow.com/a/29931730/6080374

于 2016-07-06T07:02:41.190 回答
0

方法的auth参数requests产生一个Authorization: Basic标题,而不是Authorization: Bearer标题。

headers改为使用手动创建的Authorization标题设置字典。POST 数据(-dcurl 的命令行开关)应作为字典传递给data参数:

response = requests.post(
    "https://app.asana.com/api/1.0/tasks/101/stories",
    headers={'Authorization': 'Bearer {}'.format(self.asana.token_uri),
    data={'text': 'repo_name'})
于 2016-07-06T07:09:43.933 回答