更新开放扩展
命名空间:microsoft.graph
通过请求正文中的属性更新开放扩展(openTypeExtension 对象):
- 如果请求正文中的属性与现有属性在扩展中的名称相匹配,则更新扩展中的数据。
- 否则,属性及其数据将添加到扩展中。
扩展插件中的数据可以是基元类型,也可以是基元类型数组。
有关支持开放扩展的资源列表,请参阅 权限 部分中的表。
此 API 可用于以下国家级云部署。
全局服务 | 美国政府 L4 | 美国政府 L5 (DOD) | 由世纪互联运营的中国 |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
权限
根据创建扩展的资源以及 (委托的权限类型或请求的应用程序) 类型,下表中指定的权限是调用此 API 所需的最低特权。 若要了解其他信息, 在 特权权限之前要特别小心,在"权限" 中搜索。
支持的资源 | 委派(工作或学校帐户) | 委派(个人 Microsoft 帐户) | 应用程序 |
---|---|---|---|
设备 | Directory.AccessAsUser.All | 不支持 | Device.ReadWrite.All |
事件 | Calendars.ReadWrite | Calendars.ReadWrite | Calendars.ReadWrite |
组 | Group.ReadWrite.All | 不支持 | Group.ReadWrite.All |
组事件 | Group.ReadWrite.All | 不支持 | 不支持 |
组帖子 | Group.ReadWrite.All | 不支持 | Group.ReadWrite.All |
邮件 | Mail.ReadWrite | Mail.ReadWrite | Mail.ReadWrite |
组织 | Organization.ReadWrite.All | 不支持 | Organization.ReadWrite.All |
个人联系人 | Contacts.ReadWrite | Contacts.ReadWrite | Contacts.ReadWrite |
todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
todoTaskList | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
用户 | 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}
注意: 以上语法显示一些标识资源实例的常见方法,以便在其中更新一个扩展。 可以用来标识这些资源实例的所有其他语法均支持以类似的方式在其中更新开放扩展。
若要了解如何在请求正文中添加任意自定义数据来进行更改或添加到扩展插件,请参阅请求正文部分。
路径参数
参数 | 类型 | 说明 |
---|---|---|
id | string | 相应集合的实例的唯一标识符。 必需。 |
extensionId | string | 这可以是一个扩展名称(即扩展的唯一文本标识符)或完全限定的名称(连接扩展类型和唯一文本标识符)。 创建扩展时,在 id 属性中返回完全限定的名称。 必需。 |
请求标头
名称 | 值 |
---|---|
Authorization | 持有者 {token}。 必填。 详细了解 身份验证和授权。 |
Content-Type | application/json |
请求正文
提供 openTypeExtension 对象的 JSON 正文(具有以下所需的名称-值对)以及要更改或添加到该扩展中的任意定义数据。 JSON 负载中的数据可以是基元或基元数组类型。
名称 | 值 |
---|---|
@odata.type | microsoft.graph.openTypeExtension |
extensionName | %unique_string% |
使用此操作可将数据存储在打开的扩展属性中、更新存储的数据或删除现有数据。
- 若要更新打开的扩展对象中的任何属性,必须在请求正文中指定 所有 属性;否则,Microsoft Graph 将删除未指定的属性。
- 若要从打开扩展对象中的属性中删除数据,请将其值设置为 null
。
- 若要从打开的扩展对象中删除属性,请不要在 PATCH 请求正文中传递该属性,Microsoft Graph 会将其删除。
- 若要从打开的扩展对象中的所有属性中删除数据,但保留打开的扩展对象,请将属性的值更新为 null
。
响应
如果成功,此方法返回 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"
]
}
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈