toggl api を使用しようとしています。
GET と POSTS を実行するために、Urllib2 の代わりに Requests を使用します。しかし、私は立ち往生しています。
payload = {
"project":{
"name":"Another Project",
"billable":False,
"workspace":{
"Name":"jorrebor's workspace",
"id":213272
},
"automatically_calculate_estimated_workhours":False
}
}
url = "https://www.toggl.com/api/v6/projects.json"
r = requests.post(url, data=json.dumps(payload), auth=HTTPBasicAuth('j_xxxxx@gmail.com', 'mypassword'))
認証は問題ないようですが、ペイロード形式はおそらくそうではありません。
同じパラメータを持つ curl コマンド:
curl -v -u heremytoken:api_token -H "Content-type: application/json" -d "{\"project\":{\"billable\":true,\"workspace\":{\"id\":213272},\"name\":\"Another project\",\"automatically_calculate_estimated_workhours\":false}}" -X POST https://www.toggl.com/api/v6/projects.json
正常に動作します。
ペイロードの何が問題になっていますか? 応答は次のとおりです: ["Name can't be blank","Workspace can't be blank"]
これにより、認証は機能しますが、toggl は json オブジェクトを読み取れないと結論付けます。