Обновление открытого расширения
Пространство имен: microsoft.graph
Обновление открытого расширения (объекта openTypeExtension ) для поддерживаемого типа ресурса.
- Если свойство в теле запроса совпадает с именем существующего свойства в расширении, то данные в расширении будут обновлены.
- В противном случае это свойство и его данные добавляются в расширение.
Данные в расширении могут быть примитивными типами или массивами примитивных типов.
Список ресурсов, поддерживающих открытые расширения, см. в таблице в разделе Разрешения .
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
В зависимости от ресурса, в который было создано расширение, и типа запрошенного разрешения (делегированного или приложения), разрешение, указанное в следующей таблице, является наименее привилегированным для вызова этого API. Чтобы получить дополнительные сведения, в том числе о соблюдении осторожности перед выбором разрешений с повышенными привилегиями, найдите следующие разрешения в разделе Разрешения.
Поддерживаемый ресурс | Делегированное (рабочая или учебная учетная запись) | Делегированное (личная учетная запись Майкрософт) | Для приложений |
---|---|---|---|
device | Directory.AccessAsUser.All | Не поддерживается | Device.ReadWrite.All |
event | Calendars.ReadWrite | Calendars.ReadWrite | Calendars.ReadWrite |
group | Group.ReadWrite.All | Не поддерживается | Group.ReadWrite.All |
event для групп | Group.ReadWrite.All | Не поддерживается | Не поддерживается |
post для групп | Group.ReadWrite.All | Не поддерживается | Group.ReadWrite.All |
message | Mail.ReadWrite | Mail.ReadWrite | Mail.ReadWrite |
organization | Organization.ReadWrite.All | Не поддерживается | Organization.ReadWrite.All |
contact (личный контакт) | Contacts.ReadWrite | Contacts.ReadWrite | Contacts.ReadWrite |
todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
todoTaskList | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
user | User.ReadWrite | User.ReadWrite | User.ReadWrite.All |
HTTP-запрос
В запросе идентифицируйте экземпляр ресурса, воспользуйтесь свойством навигации extensions этого экземпляра, чтобы определить расширение, и укажите метод PATCH
для этого экземпляра расширения.
PATCH /devices/{Id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/events/{id}/extensions/{extensionId}
PATCH /groups/{id}/extensions/{extensionId}
PATCH /groups/{id}/events/{id}/extensions/{extensionId}
PATCH /groups/{id}/threads/{id}/posts/{id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/messages/{id}/extensions/{extensionId}
PATCH /organization/{Id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/contacts/{id}/extensions/{extensionId}
PATCH /users/{id|userPrincipalName}/extensions/{extensionId}
PATCH /users/me/todo/lists/{todoTaskListId}/tasks/{taskId}/extensions/{extensionId}
PATCH /users/me/todo/lists/{todoTaskListId}/extensions/{extensionId}
Заметка: Приведенный выше синтаксис показывает некоторые распространенные способы определения экземпляра ресурса для обновления расширения в нем. Все остальные синтаксисы, позволяющие идентифицировать эти экземпляры ресурсов, поддерживают обновление открытых расширений в них аналогичным образом.
См. раздел Тело запроса о том, как включить в тело запроса специальные данные для изменения или дополнения этого расширения.
Заголовки запросов
Имя | Значение |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Content-Type | application/json |
Текст запроса
В тексте запроса укажите только значения свойств для обновления. Существующие свойства, которые не включены в текст запроса, сохраняют свои предыдущие значения или пересчитываются на основе изменений других значений свойств.
В следующей таблице указаны свойства, которые можно обновить.
Задайте основной текст JSON объекта openTypeExtension с указанными ниже обязательными парами имя-значение и любыми пользовательскими данными, которые необходимо изменить или добавить в это расширение.
Свойство | Тип | Описание |
---|---|---|
@odata.type | String | Должно быть задано значение #microsoft.graph.openTypeExtension . Обязательно. |
extensionName | String | Требуется, если идентификатор не указан. Обновляемые. |
id | String | Требуется, если идентификатор не указан. Только для чтения. |
Для ресурсов, которые являются объектами каталога (Microsoft Entra ID):
- Чтобы обновить любое свойство в открытом объекте расширения, необходимо указать все свойства в тексте запроса; В противном случае Microsoft Graph удаляет неуказаные свойства.
- Чтобы удалить данные из свойства в открытом объекте расширения, но сохранить свойство, присвойте ей значение
null
. - Чтобы удалить свойство из открытого объекта расширения, не передайте его в тексте запроса PATCH, и Microsoft Graph удаляет его.
- Чтобы удалить данные из всех свойств в открытом объекте расширения, но сохранить открытый объект расширения, обновите значения всех свойств на
null
.
Для ресурсов Microsoft 365, таких как сообщения:
- Вы можете указать подмножество свойств в тексте запроса, чтобы обновить их. Пропущенные свойства и их значения сохраняются.
-
null
значения не допускаются.
Отклик
В случае успешного 204 No Content
выполнения этот метод возвращает код ответа для объектов каталога или 200 OK
код ответа и обновленный объект openTypeExtension для других ресурсов.
Пример
Запрос 1
В первом примере показано, как обновить расширение в сообщении. Изначально расширение представлено указанными ниже полезными данными JSON.
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions/$entity",
"@odata.type": "#microsoft.graph.openTypeExtension",
"@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions
('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
"extensionName": "Com.Contoso.Referral",
"id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
"companyName": "Wingtip Toys",
"dealValue": 500050,
"expirationDate": "2015-12-03T10:00:00Z"
}
Вы можете ссылаться на расширение по его имени:
PATCH https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Com.Contoso.Referral
Кроме того, вы можете ссылаться на расширение по его полному имени:
PATCH https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral
Для обновления указанного выше расширения используйте любой пример запроса и приведенный ниже тело запроса следующими способами:
- изменив значение параметра
companyName
сWingtip Toys
наWingtip Toys (USA)
; - изменив значение параметра
dealValue
с500050
на500100
; - добавив новые данные в качестве пользовательского свойства
updated
.
{
"@odata.type": "microsoft.graph.openTypeExtension",
"extensionName": "Com.Contoso.Referral",
"companyName": "Wingtip Toys (USA)",
"dealValue": "500100",
"expirationDate": "2015-12-03T10:00:00.000Z",
"updated": "2015-10-29T11:00:00.000Z"
}
Отклик 1
Вот отклик, который не зависит от способа, которым вы ссылаетесь на расширение.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions/$entity",
"@odata.type": "#microsoft.graph.openTypeExtension",
"@odata.id": "https://graph.microsoft.com/v1.0/users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions
('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
"id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
"extensionName": "Com.Contoso.Referral",
"companyName": "Wingtip Toys (USA)",
"dealValue": 500100,
"expirationDate": "2015-12-03T10:00:00Z",
"updated": "2015-10-29T11:00:00.000Z"
}
Запрос 2
Во втором примере показано, как обновить расширение в публикации группы. Изначально расширение представлено указанными ниже полезными данными JSON, в котором параметр expirationDate
имеет значение 2015-07-03T13:04:00Z
:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups('37df2ff0-0de0-4c33-8aee-75289364aef6')/threads('AAQkADJizZJpEWwqDHsEpV_KA%3D%3D')/posts('AAMkADJiUg96QZUkA-ICwMubAADDEd7UAAA%3D')/extensions/$entity",
"@odata.type": "#microsoft.graph.openTypeExtension",
"id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Estimate",
"extensionName": "Com.Contoso.Estimate",
"companyName": "Contoso",
"expirationDate": "2015-07-03T13:04:00Z",
"DealValue": 1010100,
"Strings@odata.type": "#Collection(String)",
"topPicks": [
"Employees only",
"Add spouse or guest",
"Add family"
]
}
Ниже приведен запрос и тело запроса для изменения значения параметра expirationDate
на 2016-07-30T11:00:00Z
.
PATCH https://graph.microsoft.com/v1.0/groups/37df2ff0-0de0-4c33-8aee-75289364aef6/threads/AAQkADJizZJpEWwqDHsEpV_KA==/posts/AAMkADJiUg96QZUkA-ICwMubAADDEd7UAAA=/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Estimate
Content-type: application/json
{
"@odata.type": "Microsoft.OutlookServices.OpenTypeExtension",
"extensionName": "Com.Contoso.Estimate",
"companyName": "Contoso",
"expirationDate": "2016-07-30T11:00:00.000Z",
"DealValue": 1010100,
"topPicks": [
"Employees only",
"Add spouse or guest",
"Add family"
]
}
Отклик 2
Вот отклик для второго примера, в котором отображается обновленный параметр expirationDate
в расширении.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups('37df2ff0-0de0-4c33-8aee-75289364aef6')/threads('AAQkADJizZJpEWwqDHsEpV_KA%3D%3D')/posts('AAMkADJiUg96QZUkA-ICwMubAADDEd7UAAA%3D')/extensions/$entity",
"@odata.type": "#microsoft.graph.openTypeExtension",
"id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Estimate",
"extensionName": "Com.Contoso.Estimate",
"companyName": "Contoso",
"expirationDate": "2016-07-30T11:00:00Z",
"DealValue": 1010100,
"Strings@odata.type": "#Collection(String)",
"topPicks": [
"Employees only",
"Add spouse or guest",
"Add family"
]
}