Поделиться через


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

Пространство имен: 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
}