Compartir a través de


Actualizar openTypeExtension

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Precaución

Las aplicaciones existentes que usan esta característica con baseTask o baseTaskList deben actualizarse, ya que el conjunto de API de tareas pendientes basado en estos recursos está en desuso a partir del 31 de mayo de 2022. Ese conjunto de API dejará de devolver datos el 31 de agosto de 2022. Use el conjunto de API basado en todoTask.

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. La operación se comporta de manera diferente para los recursos que son objetos de directorio frente a otros recursos.

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
baseTask (en desuso) Tasks.ReadWrite Tasks.ReadWrite No compatible
baseTasklist (en desuso) Tasks.ReadWrite Tasks.ReadWrite No compatible
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 No compatible
todoTasklist Tasks.ReadWrite Tasks.ReadWrite No compatible
user 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 /administrativeUnits/{administrativeUnitId}/extensions/{extensionId}
PATCH /devices/{deviceId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/events/{eventId}/extensions/{extensionId}
PATCH /groups/{groupId}/extensions/{extensionId}
PATCH /groups/{groupId}/events/{eventId}/extensions/{extensionId}
PATCH /groups/{groupId}/threads/{threadId}/posts/{postId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/messages/{messageId}/extensions/{extensionId}
PATCH /organization/{organizationId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/contacts/{contactId}/extensions/{extensionId}
PATCH /users/{userId|userPrincipalName}/extensions/{extensionId}
PATCH /users/me/todo/lists/{listId}/tasks/{taskId}/extensions/{extensionId}
PATCH /users/me/todo/lists/{listId}/extensions/{extensionId}
PATCH /users/me/tasks/lists/{listId}/tasks/{taskId}/extensions/{extensionId}
PATCH /users/me/tasks/lists/{listId}/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, proporcione solo los valores de las propiedades que se van a actualizar. 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 (Microsoft Entra ID):

  • 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 nullen .
  • 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/beta/$metadata#Me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "@odata.id": "https://graph.microsoft.com/beta/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/beta/me/messages/AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===/extensions/Com.Contoso.Referral

O puede hacer referencia a la extensión por su nombre completo:

PATCH https://graph.microsoft.com/beta/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 de Wingtip Toys a Wingtip Toys (USA)
  • Cambiar dealValue de 500050 a 500100
  • 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/beta/$metadata#Me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "@odata.id": "https://graph.microsoft.com/beta/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/beta/$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/beta/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/beta/$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"
    ]
}