Actualizar extensión abierta
Espacio de nombres: microsoft.graph
Actualice una extensión abierta (objeto openTypeExtension ) en un tipo de recurso admitido.
- Si una propiedad del cuerpo de la solicitud coincide con el nombre de una propiedad existente en la extensión, se actualizan los datos de la extensión.
- De lo contrario, esa propiedad y sus datos se agregan a la extensión.
Los datos de una extensión pueden ser tipos primitivos o matrices de tipos primitivos.
Consulte la tabla de la sección Permisos para obtener la lista de recursos que admiten extensiones abiertas.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
Servicio global | Gobierno de EE. UU. L4 | Us Government L5 (DOD) | China operada por 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Permissions
Según el recurso en el que se creó la extensión y el tipo de permiso (delegado o aplicación) solicitado, el permiso especificado en la tabla siguiente es el mínimo privilegio necesario para llamar a esta API. Para más información, incluida la toma de precauciones antes de elegir permisos con más privilegios, busque los siguientes permisos en Permisos.
Recurso admitido | Delegado (cuenta profesional o educativa) | Delegado (cuenta de Microsoft personal) | Aplicación |
---|---|---|---|
dispositivo | Directory.AccessAsUser.All | No admitido | Device.ReadWrite.All |
evento | Calendars.ReadWrite | Calendars.ReadWrite | Calendars.ReadWrite |
grupo | Group.ReadWrite.All | No admitido | Group.ReadWrite.All |
evento de grupo | Group.ReadWrite.All | No admitido | No admitido |
publicación de grupo | Group.ReadWrite.All | No admitido | Group.ReadWrite.All |
mensaje | Mail.ReadWrite | Mail.ReadWrite | Mail.ReadWrite |
organization | Organization.ReadWrite.All | No se admite | Organization.ReadWrite.All |
contacto personal | Contacts.ReadWrite | Contacts.ReadWrite | Contacts.ReadWrite |
todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
todoTaskList | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
usuario | User.ReadWrite | User.ReadWrite | User.ReadWrite.All |
Solicitud HTTP
En la solicitud, identifique la instancia de recurso, utilice la propiedad de navegación extensiones de esa instancia para identificar y realizar un PATCH
en esa instancia de extensión.
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}
Nota: La sintaxis anterior muestra algunas maneras comunes de identificar una instancia de recurso para actualizar una extensión en ella. El resto de la sintaxis que permite identificar estas instancias de recursos admite la actualización de extensiones abiertas en ellas de una manera similar.
Consulte la sección Cuerpo de la solicitud sobre cómo incluir en el cuerpo de petición cualquier dato personalizado para cambiar o agregar a esa extensión.
Encabezados de solicitud
Nombre | Valor |
---|---|
Authorization | {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización. |
Content-Type | application/json |
Cuerpo de la solicitud
En el cuerpo de la solicitud, únicamente proporcione los valores de las propiedades que deben actualizarse. Las propiedades existentes que no se incluyen en el cuerpo de la solicitud mantienen sus valores anteriores o se recalculan en función de los cambios realizados en otros valores de propiedad.
En la tabla siguiente se especifican las propiedades que se pueden actualizar.
Proporcione un cuerpo JSON del objeto openTypeExtension con los siguientes pares nombre-valor necesarios y con cualquier dato personalizado que se cambiará o agregará a la extensión.
Propiedad | Tipo | Descripción |
---|---|---|
@odata.type | Cadena | Debe ser #microsoft.graph.openTypeExtension . Obligatorio. |
extensionName | String | Obligatorio si no se proporciona id . Actualizable. |
id | Cadena | Obligatorio si no se proporciona id . Solo lectura. |
Para los recursos que son objetos de directorio (Id. de Microsoft Entra):
- Para actualizar cualquier propiedad del objeto de extensión abierta, debe especificar todas las propiedades del cuerpo de la solicitud; De lo contrario, Microsoft Graph elimina las propiedades no especificadas.
- Para eliminar datos de una propiedad en el objeto de extensión abierto, pero mantener la propiedad, establezca su valor
null
en . - Para eliminar una propiedad del objeto de extensión abierta, no la pase en el cuerpo de la solicitud PATCH y Microsoft Graph la elimina.
- Para eliminar datos de todas las propiedades del objeto de extensión abierta, pero mantener el objeto de extensión abierto, actualice los valores de todas las propiedades a
null
.
Para recursos de Microsoft 365 como mensajes:
- Puede especificar un subconjunto de las propiedades en el cuerpo de la solicitud para actualizarlas. Se conservan las propiedades omitidas y sus valores.
-
null
no se permiten los valores.
Respuesta
Si se ejecuta correctamente, este método devuelve un 204 No Content
código de respuesta para objetos de directorio o un 200 OK
código de respuesta y un objeto openTypeExtension actualizado para otros recursos.
Ejemplo
Solicitud 1
En el primer ejemplo, se muestra cómo actualizar una extensión en un mensaje. Inicialmente, la extensión se representa mediante la siguiente carga 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"
}
Puede hacer referencia a la extensión por su nombre:
PATCH https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Com.Contoso.Referral
O puede hacer referencia a la extensión por su nombre completo:
PATCH https://graph.microsoft.com/v1.0/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral
Puede usar cualquier solicitud de ejemplo y el cuerpo de la solicitud siguiente para actualizar la extensión anterior:
- Cambiar
companyName
deWingtip Toys
aWingtip Toys (USA)
- Cambiar
dealValue
de500050
a500100
- Agregar nuevos datos como la propiedad personalizada
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"
}
Respuesta 1
Esta es la respuesta, que es la misma independientemente de la forma usada para hacer referencia a la extensión.
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"
}
Solicitud 2
En el segundo ejemplo, se muestra cómo actualizar una extensión en una publicación de grupo. Inicialmente, la extensión se representa mediante la siguiente carga JSON, con un valor expirationDate
de 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"
]
}
En la siguiente solicitud y cuerpo de la solicitud, tiene que cambiar la propiedad expirationDate
por 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"
]
}
Respuesta 2
Esta es la respuesta del segundo ejemplo que muestra la propiedad expirationDate
actualizada en la extensión.
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"
]
}