Adicionar dados personalizados aos usuários usando extensões abertasAdd custom data to users using open extensions

Neste artigo você será guiado através de um exemplo para ilustrar o uso de extensões abertas.This article walks you through an example to demonstrate how to use open extensions.

Imagine que você está criando um aplicativo que está disponível em várias plataformas cliente diferentes, como computadores e dispositivos móveis. Você gostaria que os usuários pudessem configurar a própria experiência de interface do usuário para que ela fosse consistente, independentemente do dispositivo usado para entrar no seu aplicativo. Este é um requisito comum para a maioria dos aplicativos.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.

Para este cenário, este artigo lhe mostrará como:For this scenario, this article will show you how to:

  1. Adicionar uma extensão aberta representando algumas informações do perfil móvel sobre o usuário.Add an open extension representing some roaming profile information about the user.
  2. Consultar o usuário e retornar o perfil móvel.Query the user and return the roaming profile.
  3. Alterar as informações do perfil móvel do usuário (o valor de extensão aberta).Change the user's roaming profile information (the open extension value).
  4. Excluir informações do perfil móvel do usuário.Delete the user's roaming profile information.

Observação: Este tópico mostrará a você como adicionar, ler, atualizar e excluir extensões abertas em um recurso de user. Esses métodos também são suportados para os tipos de recurso administrativeUnit, contact, device, event, group, organization, post, todoTask, e todoTaskList.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, organizaton, post, todoTask, and todoTaskList resource types.
Você pode atualizar os exemplos de solicitação usando qualquer um desses tipos de recursos.You can update the request examples using any of those resource types. As respostas ilustradas nos exemplos poderiam ser reduzidas para facilitar a leitura.The responses shown in the examples might be shortened for readability.

1. Adicionar informações de perfil móvel1. Add roaming profile information

O usuário entra no aplicativo e configura a aparência do aplicativo. Essas configurações de aplicativo devem transitar para que o usuário obtenha a mesma experiência em praticamente qualquer dispositivo usado para entrar no aplicativo. Aqui, veremos como adicionar as informações do perfil móvel a um recurso user.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.

SolicitaçãoRequest

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

RespostaResponse

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 informações do perfil móvel do usuário.2. Retrieve roaming profile information

Quando o usuário entra no aplicativo de outro dispositivo, o aplicativo pode recuperar detalhes do perfil do usuário, além das configurações de roaming dele. Isso pode ser feito obtendo recursos do usuário e expandindo a propriedade de navegação da extensão.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.

SolicitaçãoRequest

GET https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions

RespostaResponse

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

Observação: Se você tiver várias extensões, você pode filtrar na id para obter a extensão que lhe interessa.Note: If you have multiple extensions, you can filter on the id to get the extension that you're interested in.

3. Alterar informações de perfil móvel3. Change roaming profile information

O usuário pode escolher alterar as próprias informações do perfil móvel. Esta atualização pode ser feita com um PATCH no valor da extensão aberta.The user can choose to change their roaming profile information. This update can be done with a PATCH on the open extension value.

SolicitaçãoRequest

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

RespostaResponse

HTTP/1.1 204 No content

4. Excluir um perfil de usuário móvel4. Delete a user's roaming profile

O usuário decide que, se não quiser mais um perfil móvel, pode excluí-lo. Esta atualização pode ser feita com uma solicitação DELETE no valor extensão aberto.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.

SolicitaçãoRequest

DELETE https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings

RespostaResponse

HTTP/1.1 204 No content

Confira tambémSee also