Actualizar extensión abierta

Espacio de nombres: microsoft.graph

Actualice una extensión abierta (objeto openTypeExtension ) con las propiedades del cuerpo de la solicitud:

  • 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 de tipo primitivo 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.

Parámetros de ruta de acceso

Parameter Tipo Descripción
id string Un identificador único para una instancia de la colección correspondiente. Necesario.
extensionId string Puede ser un nombre de extensión, que es un identificador de texto único de una extensión, o un nombre completo que concatena el tipo de extensión y un identificador de texto único. Se devuelve el nombre completo de la propiedad id al crear la extensión. Necesario.

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

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. Los datos de la carga JSON pueden ser de tipo primitivo o matrices de tipos primitivos.

Nombre Valor
@odata.type Microsoft.Graph.OpenTypeExtension
extensionName %unique_string%

Use esta operación para almacenar datos en la propiedad de extensión abierta, actualizar los datos almacenados o eliminar los datos existentes. - Para actualizar cualquier propiedad del objeto de extensión abierta, debe especificar todas las propiedades en el cuerpo de la solicitud; De lo contrario, Microsoft Graph eliminará las propiedades no especificadas. - Para eliminar datos de una propiedad en el objeto de extensión abierta, 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 eliminará. - 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 las propiedades a null.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y el objeto openTypeExtension actualizado.

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 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/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"
    ]
}