Отправить файл / изображение в виде сообщения из локальной системы в командном канале Microsoft

#microsoft-graph-api #microsoft-teams

#microsoft-graph-api #microsoft-teams

Вопрос:

Как я могу отправить локальный файл / изображение в канале Microsoft Teams, используя отправить сообщение Microsoft Graph API?

Я следил за документом https://learn.microsoft.com/en-us/graph/api/resources/chatmessageattachment?view=graph-rest-1.0 прикрепить изображение при создании сообщения для отправки по командному каналу. Я пытаюсь отправить изображение в формате base64. Но я получаю сообщение об ошибке.

 {
    "error": {
        "code": "InternalServerError",
        "message": "Failed to process request.",
        "innerError": {
            "date": "2020-09-25T11:43:02",
            "request-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "client-request-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    }
}
  

Комментарии:

1. Вы можете отправлять вложения файлов с помощью graph API. Не могли бы вы проверить этот пример ?

Ответ №1:

Кажется, нет подходящего API для прямой отправки локального файла в виде сообщения.

Creating chatMessage in a channel просто поддерживает отправку файла, который был в SharePoint. Итак, для отправки локального файла необходимо выполнить два шага: сначала загрузить файл в SharePoint, затем создать ChatMessage.


1. Загрузите файл в SharePoint:

Файл размером менее 4 МБ:

 PUT https://graph.microsoft.com/v1.0/drives/{{drive-id}}/items/root:/{{file-name}}:/content
Header:
"Authorization" : "Bearer <access-token>"
Body: binary (select binary option in body in postman)
Upload a file using select file option
file-name: is file name along with extension example: test.txt
  

Файл размером более 4 МБ:

 GET: https://graph.microsoft.com/v1.0/drives/{{drive-id}}/items/root:/{{file-name}}:/createUploadSession
Header:
"Authorization" : "Bearer <access-token>"
  

Запрос Get вернет URL-адрес загрузки.

 PUT <upload url>
Header:
"Authorization" : "Bearer <access-token>"
Body: binary (select binary option in body in postman)
  

Дополнительные сведения см. Здесь.

2. Создайте ChatMessage:

 POST https://graph.microsoft.com/v1.0/teams/{id}/channels/{id}/messages
Content-type: application/json

{
    "body": {
        "contentType": "html",
        "content": "Here's the latest budget. <attachment id="153fa47d-18c9-4179-be08-9879815a9f90"></attachment>"
    },
    "attachments": [
        {
            "id": "153fa47d-18c9-4179-be08-9879815a9f90",
            "contentType": "reference",
            "contentUrl": "https://m365x987948.sharepoint.com/sites/test/Shared Documents/General/test doc.docx",
            "name": "Budget.docx"
        }
    ]
}