【问题标题】:Pivotal Tracker API LabelsPivotal Tracker API 标签
【发布时间】:2015-03-05 07:23:12
【问题描述】:

我正在尝试使用 Pivotal Tracker API 使用 python 发布故事。我可以使用 python requests 模块来做到这一点。以下是我可以用来创建新故事的示例代码:

payload = {"name":"Create story w/create label"}
requests.post('https://www.pivotaltracker.com/services/v5/projects/xxxxxx/stories', data=payload4, headers={'X-TrackerToken':token}).json()

输出是什么

{u'created_at': u'2015-03-04T18:47:28Z',
 u'current_state': u'unscheduled',
 u'id': xxxxxx,
 u'kind': u'story',
 u'labels': [],
 u'name': u'Create story w/create label',
 u'owner_ids': [],
 u'project_id': xxxxxx,
 u'requested_by_id': xxxxxx,
 u'story_type': u'feature',
 u'updated_at': u'2015-03-04T18:47:28Z',
 u'url': u'https://www.pivotaltracker.com/story/show/xxxxxx'}

太好了。现在,我想创建一个故事并为其添加标签。根据https://www.pivotaltracker.com/help/api/rest/v5 上的 POST /projects/{project_id}/stories API,我应该能够按如下方式格式化我的 json 并运行 POST 请求:

payload = {"name":"Create story w/create label","labels":[{"name":"orbit"}]}
requests.post('https://www.pivotaltracker.com/services/v5/projects/xxxxxx/stories', data=payload, headers={'X-TrackerToken':token}).json()

但是,我收到以下 400 响应:

{u'code': u'invalid_parameter',
 u'error': u'One or more request parameters was missing or invalid.',
 u'general_problem': u"'labels' must be an array of label values",
 u'kind': u'error'}

据我了解,我格式化有效载荷 json 的方式是正确的,标签资源 json 的格式也正确。我不确定错误是在我身上还是其他原因。如果有 API 知识的人可以提供一些帮助,将不胜感激。

谢谢

【问题讨论】:

  • 我也是这样。根据pivotaltracker.com/help/api/rest/v5#Stories 一个有效的curl 请求是:curl -X POST -H "X-TrackerToken: $TOKEN" -H "Content-Type: application/json" -d '{"labels":["plans","Inspected by TK-421"],"name":"Exhaust ports are ray shielded"}' "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/stories" 有效,但我的python 有效负载似乎被拒绝了。

标签: json api post get pivotaltracker


【解决方案1】:

已解决,存在 JSON 编码问题。我们从未告诉关键跟踪器我们正在发送 JSON。此代码 sn-p 有效: data = { "labels": ["major request"], "name": "some cool feature", "description": "solve world hunger", "comments": ["requested by not the 1%"] } headers = {'X-TrackerToken': TRACKER_TOKEN, 'Content-type': 'application/json', 'Accept': 'application/json' } return requests.post(url, headers=headers, data=json.dumps(data)) 需要告诉 API 我们正在发送 JSON 并接受 JSON。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 2012-12-02
    相关资源
    最近更新 更多