Ярлыки API Pivotal Tracker

Я пытаюсь использовать API Pivotal Tracker, чтобы опубликовать историю, используя python. Я могу сделать это с помощью модуля запросов Python. Ниже приведен пример кода, который я могу использовать для создания новой истории:

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'}

Отлично. Теперь я хочу создать историю и добавить к ней ярлык. Согласно API POST /projects/{project_id}/ Stories на https://www.pivotaltracker.com/help/api/rest/v5, я должен иметь возможность отформатировать свой 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 мог оказать некоторую помощь, это было бы очень ценно.

Спасибо

1 ответ

Решение

Решено, есть проблема с кодировкой JSON. Мы никогда не говорили основному трекеру, что отправляем JSON. Этот фрагмент кода работает: 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.

Другие вопросы по тегам