Ошибка вложения Microsoft graph api из-за невозможности десериализации

Я пробовал это, я могу создать событие, но получаю эту ошибку.

body_json={
        "@odata.type": "#microsoft.graph.fileAttachment",
        "name": "menu.txt",
        "contentBytes": "base64bWFjIGFuZCBjaGVlc2UgdG9kYXk="
    }



   API =" https://graph.microsoft.com/v1.0/users/{}/events/{}/attachments".format(userId,meetingID)
        body_json = json.dumps(body_json) 
        response = requests.request("POST", url=API, data=body_json, headers=self.headers)

ошибка: <Response [400]> {"error":{"code":"UnableToDeserializePostBody","message":"were unable to deserialize "}}


person vrund297    schedule 23.04.2021    source источник


Ответы (1)


Проблема здесь в том, что данные, которые вы помещаете в свойство contentBytes, не являются BASE64. Поскольку вы следуете документация они привели этот пример, чтобы вы поняли, что это данные base64. Но на самом деле в примере это не base64. Таким образом, вы можете преобразовать его в base64 онлайн, как показано ниже, и протестировать.

введите описание изображения здесь

Это тело запроса, которое я использовал, с Hello World.

{
    "@odata.type": "#microsoft.graph.fileAttachment",
    "name": "menu.txt",
    "contentBytes": "SGVsbG8gV29ybGQ="
}

Это дало мне успешные результаты в графическом обозревателе. Вы можете использовать его для тестирования вызовов API Graph.

person Shiva Keshav Varma    schedule 23.04.2021