sbr*_*bru 0 python curl pivotaltracker python-2.7 python-requests
我需要使用一个进行cURL调用的API.此处显示的API:https://www.pivotaltracker.com/help/api/rest/v5.我在Python 2.7中编码并下载了Requests模块以用于cURL调用,但是我不确定如何执行此操作.这是我到目前为止:
import requests
username = 'my_username'
password = 'my_password'
url = 'https://www.pivotaltracker.com/n/projects/my_project_number'
r = requests.get(url, auth=(username, password))
Run Code Online (Sandbox Code Playgroud)
既然我有响应r,我该怎么做才能使用cURL调用来使用API函数,例如GET/projects/{project_id}/epics/{epic_id}函数.对此功能的cURL调用是:
export TOKEN='your Pivotal Tracker API token'
export PROJECT_ID=99
curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/4"
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助,您可以提供!
编辑(感谢@Rob Watts)现在这是我的代码:
import requests
username = 'my_username'
password = 'my_password'
url = 'https://www.pivotaltracker.com/services/v5/me'
r = requests.get(url, auth=(username, password))
response_json = r.json()
token = response_json['api_token']
project_id = 'my_project_id'
url = 'https://www.pivotaltracker.com/services/v5/projects/{}/epics/1'
r = requests.get(url.format(project_id), headers={'X-TrackerToken':token})
print r.text
Run Code Online (Sandbox Code Playgroud)
但它仍然无法正常工作.这是输出:
{
"code": "unfound_resource",
"kind": "error",
"error": "The object you tried to access could not be found. It may have been removed by another user, you may be using the ID of another object type, or you may be trying to access a sub-resource at the wrong point in a tree."
}
Run Code Online (Sandbox Code Playgroud)
但根据文档,我希望这样的事情:
{
"created_at": "2014-08-26T12:00:00Z",
"description": "Identify the systems and eliminate the rebel scum.",
"id": 1,
...
}
Run Code Online (Sandbox Code Playgroud)
看起来您应该首先调用'/ me'端点,然后从响应中提取API令牌:
import requests
username = 'my_username'
password = 'my_password'
url = 'https://www.pivotaltracker.com/services/v5/me'
r = requests.get(url, auth=(username, password))
response_json = r.json()
token = response_json['api_token']
Run Code Online (Sandbox Code Playgroud)
除了来自该端点的API令牌之外,您还可以获得其他一些东西.查看该端点的文档,看看是否还有其他需要的东西.
获得API令牌后,所有其他调用都会非常简单.例如:
project_id = 'your_project_id' # could get this from the previous response
r = requests.get('https://www.pivotaltracker.com/services/v5/projects/{}/epics/4'.format(project_id), headers={'X-TrackerToken':token})
Run Code Online (Sandbox Code Playgroud)
我将解释他们对此示例的cURL调用的部分以及它们如何翻译:
export VARNAME
Run Code Online (Sandbox Code Playgroud)
为要使用的cURL调用设置变量.您看到的$VARNAME是变量的使用位置.
-X GET
Run Code Online (Sandbox Code Playgroud)
我不知道他们为什么包括这个.这只是指定使用GET,这是cURL的默认值.使用requests.get照顾这个.但是,对于那些-X POST,你使用requests.post,等等.
-H "X-TrackerToken: $TOKEN"
Run Code Online (Sandbox Code Playgroud)
这指定了标题.对于请求,我们使用headers关键字参数 - headers={key:value}.在这个具体的例子中,我们有headers={'X-TrackerToken':token}.
"https://..."
Run Code Online (Sandbox Code Playgroud)
网址.这是第一个论点.$PROJECT_ID可以使用format字符串方法插入变量(如示例中所示).
| 归档时间: |
|
| 查看次数: |
3803 次 |
| 最近记录: |