Добавление вложения

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

С помощью этого API можно добавить вложение к сообщению.

Допустимые типы вложений:

  • файл (ресурс fileAttachment);
  • элемент (контакт, событие или сообщение, представленные ресурсом itemAttachment);
  • ссылка на файл (ресурс referenceAttachment).

Все эти типы ресурсов вложений являются производными от ресурса attachment.

Можно добавить вложение в существующее сообщение , опубликовав его в коллекции вложений или в новое сообщение, которое составляется или создается и отправляется "на лету".

Примечание. Эта операция ограничивает размер вложения, которое можно добавить, менее 3 МБ.

Однако если вы вкладываете в сообщение файл размером от 3 до 150 МБ, вы можете создать сеанс отправки и итеративно отправлять диапазоны файла, чтобы вложить его. Например, вложение больших файлов в сообщения Outlook .

Этот API доступен в следующих национальных облачных развертываниях.

Глобальное обслуживание Правительство США L4 Правительство США L5 (DOD) Китай, обслуживаемый 21Vianet
✅ ✅ ✅ ✅

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более высокий уровень привилегий или разрешений, только если это требуется вашему приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в статье Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшим объемом привилегий Разрешения с более высоким уровнем привилегий
Делегированные (рабочая или учебная учетная запись) Mail.ReadWrite Недоступно.
Делегированные (личная учетная запись Майкрософт) Mail.ReadWrite Недоступно.
Для приложений Mail.ReadWrite Недоступно.

HTTP-запрос

Вложения сообщения в почтовом ящике пользователя.

POST /me/messages/{id}/attachments
POST /users/{id | userPrincipalName}/messages/{id}/attachments

Вложения сообщения в папке mailFolder верхнего уровня в почтовом ящике пользователя.

POST /me/mailFolders/{id}/messages/{id}/attachments
POST /users/{id | userPrincipalName}/mailFolders/{id}/messages/{id}/attachments

Вложения для сообщения из дочерней папки mailFolder в почтовом ящике пользователя. В примере ниже показан один уровень вложенности, но сообщение может находиться в дочернем элементе или в дочернем элементе и т. д.

POST /me/mailFolders/{id}/childFolders/{id}/.../messages/{id}/attachments/{id}
POST /users/{id | userPrincipalName}/mailFolders/{id}/childFolders/{id}/messages/{id}/attachments/{id}

Заголовки запросов

Имя Тип Описание
Authorization string Bearer {token}. Обязательно. Дополнительные сведения об аутентификации и авторизации.
Content-Type string Характер данных в теле объекта. Обязательно.

Текст запроса

Предоставьте в тексте запроса описание объекта Attachment в формате JSON.

Отклик

В случае успеха этот метод возвращает 201 Created код отклика и объект Attachment в тексте ответа.

Пример (вложенный файл)

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/beta/me/messages/AAMkpsDRVK/attachments
Content-type: application/json

{
  "@odata.type": "#microsoft.graph.fileAttachment",
  "name": "smile",
  "contentBytes": "a0b1c76de9f7="
}

Предоставьте в тексте запроса описание объекта attachment в формате JSON.

Отклик

Ниже показан пример отклика.

HTTP/1.1 201 Created
Content-type: application/json

{
    "id": "AAMkADNkN2R",
    "lastModifiedDateTime": "2017-01-26T08:48:28Z",
    "name": "smile",
    "contentType": "image/gif",
    "size": 1008,
    "isInline": false,
    "contentId": null,
    "contentLocation": null,
    "contentBytes": "a0b1c76de9f7="
}

Пример (вложенный элемент)

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/beta/me/messages/AAMkpsDRVK/attachments
Content-type: application/json

{
  "@odata.type": "#microsoft.graph.itemAttachment",
  "name": "Holiday event",
  "item": {
    "@odata.type": "microsoft.graph.event",
    "subject": "Discuss gifts for children",
    "body": {
      "contentType": "HTML",
      "content": "Let's look for funding!"
    },
    "start": {
      "dateTime": "2016-12-02T18:00:00",
      "timeZone": "Pacific Standard Time"
    },
    "end": {
      "dateTime": "2016-12-02T19:00:00",
      "timeZone": "Pacific Standard Time"
    }
  }
}

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
  "id":"AAMkADNkNJp5JVnQIe9r0=",
  "lastModifiedDateTime":"2016-12-01T22:27:13Z",
  "name":"Holiday event",
  "contentType":null,
  "size":2473,
  "isInline":false
}

Пример (вложенная ссылка)

Запрос

В следующем примере показан запрос, который добавляет ссылку на вложение в существующее сообщение. Вложение указывает на папку в OneDrive.

POST https://graph.microsoft.com/beta/me/messages/AAMkAGE1M88AADUv0uFAAA=/attachments
Content-type: application/json

{
    "@odata.type": "#microsoft.graph.referenceAttachment",
    "name": "Personal pictures",
    "sourceUrl": "https://contoso.com/personal/mario_contoso_net/Documents/Pics",
    "providerType": "oneDriveConsumer",
    "permission": "Edit",
    "isFolder": "True"
}

Отклик

В следующем примере показан полный ответ.

HTTP 201 Created

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#users/ddfcd489-628b-40d7-b48b-57002df800e5/messages/AAMkAGE1M88AADUv0uFAAA%3D/attachments/$entity",
  "@odata.type": "#microsoft.graph.referenceAttachment",
  "id": "AAMkAGE1Mg72tgf7hJp0PICVGCc0g=",
  "lastModifiedDateTime": "2016-03-12T06:04:38Z",
  "name": "Personal pictures",
  "contentType": null,
  "size": 382,
  "isInline": false,
  "sourceUrl": "https://contoso.com/personal/mario_contoso_net/Documents/Pics",
  "providerType": "oneDriveConsumer",
  "thumbnailUrl": null,
  "previewUrl": null,
  "permission": "edit",
  "isFolder": true
}