Вызов графика для изменения задания планировщика, возвращающего 204 (и не вносящего изменения) - PullRequest
0 голосов
/ 05 апреля 2019

Я использую python, чтобы звонить в Graph API относительно планировщика и задач.всякий раз, когда я использую PATCH, чтобы попытаться обновить задачу, я получаю ответ 204, и задача остается неизменной.Согласно документации Microsoft здесь , этот запрос должен всегда возвращать ошибку уровня 200 или 400.

Я попытался изменить данные, которые я отправляю на сервер, чтобы изменить заголовок, а не даты, однако я получаю один и тот же ответ 204 независимо от того, какие данные я отправляю или какое поле я пытаюсь изменить.У меня нет проблем с выполнением других вызовов графа, таких как обновление файлов в One Drive или получение данных о пользователе

def SetDates(task):
    '''Update planner to match the start date and due date of the passed in task'''
    tid = task["id"]
    start = task["startDateTime"]    
    end = task["dueDateTime"] 
    newDates = {"dueDateTime": end,"startDateTime": start}    
    etag = task["@odata.etag"]
    session.headers.update({'If-Match':etag})
    response = session.patch(f"https://graph.microsoft.com/v1.0/planner/tasks/{tid}", data = newDates)
    session.headers.pop('If-Match')
    print(task["title"] + " Has been scheduled")

На основании документации я ожидаю, что это вернет код состояния 200, а ответ будет содержатьданные задачи, которая была обновлена, и для фактического применения изменения к задаче.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Я наконец понял это. @Tarken Sevilmis отметил, что для получения ответа 200 на запрос PATCH необходимо добавить

Prefer: return=representation

по вашему запросу. В моем случае причина, по которой мои изменения не были применены, заключалась в том, что я не установил тип содержимого в заголовке. Graph API не выдал ошибку, но, похоже, это и стало причиной проблемы. Как только я установил тип содержимого на application / json, это дало правильное указание на ошибку, что значения, которые я дал в теле, не были прочитаны правильно, и я понял, что забыл проанализировать их в JSON.

После того, как вы правильно настроите заголовки контента и убедитесь, что конвертируете свои данные в надлежащий JSON, все должно работать как положено

0 голосов
/ 07 апреля 2019

По умолчанию запросы PATCH возвращают пустой ответ с кодом возврата 204. Чтобы получить обновленные данные, вы должны отправить HTTP-заголовок «Prefer» со значением «return = presentation».

PATCH https://graph.microsoft.com/v1.0/planner/tasks/{task-id}
Content-type: application/json
Content-length: 247
If-Match: W/"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="
Prefer: return=representation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...