Agregar datos personalizados a usuarios mediante extensiones abiertasAdd custom data to users using open extensions

Vamos a guiarle a través de un ejemplo para demostrarle cómo usar las extensiones abiertas.We're going to walk you through an example to demonstrate how to use open extensions.

Imagine que está creando una aplicación que está disponible en muchas plataformas cliente distintas, como equipos de sobremesa y móviles. Quiere que los usuarios puedan configurar su experiencia de interfaz para que sea coherente sin importar en qué dispositivo inicien sesión en su aplicación. Se trata de un requisito común para la mayoría de las aplicaciones.Imagine you're building an application that is available on lots of different client platforms, such as desktop and mobile. You want to let users configure their UI experience so it’s consistent no matter which device they use to sign in to your app. This is a common requirement for most apps.

En este escenario, vamos a mostrarle cómo:For this scenario, we're going to show you how to:

  1. Agregar una extensión abierta que represente cierta información móvil acerca del usuario.Add an open extension representing some roaming profile information about the user.
  2. Realizar una consulta al usuario y devolver el perfil móvil.Query the user and return the roaming profile.
  3. Cambiar la información del perfil móvil del usuario (el valor de extensión abierta).Change the user's roaming profile information (the open extension value).
  4. Eliminar la información de perfil móvil del usuario.Delete the user's roaming profile information.

Nota: Este tema muestra cómo agregar, leer, actualizar y eliminar extensiones abiertas en un recurso usuario. Estos métodos también se admiten para los tipos de recurso administrativeUnit, póngase en contacto con, dispositivo, evento, grupo, evento de grupo, publicación de grupo y organización.Note: This topic shows you how to add, read, update and delete open extensions on a user resource. These methods are also supported for the administrativeUnit, contact, device, event, group, group event, group post and organizaton resource types.
Solo tiene que actualizar las solicitudes de ejemplo mostradas a continuación usando cualquiera de estos tipos de recurso. Las respuestas mostradas en los ejemplos siguientes pueden aparecer truncadas para abreviar.Simply update the example requests below using any of those resource types. The responses shown in the examples below may be truncated for brevity.

1. Agregar información de perfil móvil1. Add roaming profile information

El usuario inicia sesión en la aplicación y configura su apariencia. La configuración de la aplicación debe ser móvil para que el usuario reciba la misma experiencia en cualquier dispositivo desde el que inicie sesión en la aplicación. Aquí veremos cómo agregar la información del perfil móvil a un recurso de usuario.The user signs in to the app and configures the look and feel of the app. These app settings should roam so that the user gets the same experience on whatever device they sign in to the app from. Here we'll see how to add the roaming profile information to a user resource.

SolicitudRequest
POST https://graph.microsoft.com/v1.0/me/extensions
Content-type: application/json
{
    "@odata.type":"microsoft.graph.openTypeExtension",
    "extensionName":"com.contoso.roamingSettings",
    "theme":"dark",
    "color":"purple",
    "lang":"Japanese"
}
RespuestaResponse
HTTP/1.1 201 Created
Content-Type: application/json
Content-length: 420

{
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "extensionName": "com.contoso.roamingSettings",
    "id": "com.contoso.roamingSettings",
    "theme": "dark",
    "color": "purple",
    "lang": "Japanese"
}

2. Recuperar información de perfil móvil2. Retrieve roaming profile information

Cuando el usuario inicia sesión en la aplicación desde otro dispositivo, esta puede recuperar los detalles del perfil de usuario, además de su configuración móvil. Esto puede hacerse obteniendo el recurso de usuario y expandiendo la propiedad de navegación de extensión.When the user signs in to the app from another device, the app can retrieve the user's profile details as well as their roaming settings. This can be done by getting the user's resource and expanding the extension navigation property.

SolicitudRequest
GET https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions
RespuestaResponse
HTTP/1.1 200 OK
Content-Type: application/json
Content-length: 420

{
    "id": "84b80893-8749-40a3-97b7-68513b600544",
    "displayName": "John Smith",
    "mail": "john@contoso.com",
    "mobilePhone": "1-555-6589",
    "extensions": [
        {
            "@odata.type": "#microsoft.graph.openTypeExtension",
            "extensionName": "com.contoso.roamingSettings",
            "id": "com.contoso.roamingSettings",
            "theme": "dark",
            "color": "purple",
            "lang": "Japanese"
        }
    ]
}

Nota: Si tiene varias extensiones, puede filtrar por la id para obtener aquella que le interese.Note: If you have multiple extensions, you can filter on the id to get the extension that you are interested in.

3. Cambiar información de perfil móvil3. Change roaming profile information

El usuario puede cambiar la información de su perfil móvil. Esta actualización puede realizarse con un PATCH en el valor de extensión abierta.The user may choose to change their roaming profile information. This update can be done with a PATCH on the open extension value.

SolicitudRequest
PATCH https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
Content-type: application/json
{
    "theme":"light",
    "color":"yellow",
    "lang":"Swahili"
}
RespuestaResponse
HTTP/1.1 204 No content

4. Eliminar un perfil de usuario móvil4. Delete a user's roaming profile

El usuario decide que ya no desea tener un perfil móvil y lo elimina. Esto puede realizarse con una solicitud DELETE en el valor de extensión abierta.The user decides that they don't want a roaming profile anymore, so they delete it. This can be done with a DELETE request on the open extension value.

SolicitudRequest
DELETE https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
RespuestaResponse
HTTP/1.1 204 No content

Recursos adicionalesSee also