2015-03-05 3 views
1

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

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

Великий. Теперь я хочу создать историю и добавить к ней ярлык. Согласно POST/проектов/{PROJECT_ID}/рассказы API на 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 может оказать некоторую помощь, это будет очень признательно.

Благодаря

+0

Я нахожу то же самое. Согласно https://www.pivotaltracker.com/help/api/rest/v5#Stories, действительный запрос 'curl': ' curl -X POST -H "X-TrackerToken: $ TOKEN" -H "Содержимое -Type: application/json "-d '{" labels ": [" plans "," Inspected by TK-421 "]," name ":" Exhaust ports is ray shielded "} https: //www.pivotaltracker .com/services/v5/projects/$ PROJECT_ID/stories "' , который работает, но моя полезная нагрузка python, кажется, отклоняется. – Deano

ответ

2

решаемые его, есть с проблемой кодировки 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.

Смежные вопросы