Adicionar dados personalizados aos usuários usando extensões abertas

Neste tutorial, aprenda a usar extensões abertas.

Imagine que você está criando um aplicativo que está disponível em várias plataformas de cliente, como desktop e dispositivos móveis. Você deseja que os usuários do aplicativo configurem sua experiência de interface do usuário para que seja consistente, independentemente do dispositivo usado para entrar.

Para esse cenário, este artigo mostra como:

  • Representar algumas informações de perfil móvel sobre o usuário usando extensões abertas.
  • Consultar o usuário e retornar o perfil móvel.
  • Altere as informações de perfil de roaming do usuário armazenadas na extensão aberta.
  • Excluir informações do perfil móvel do usuário.

Observação

Além dos usuários, as extensões abertas também têm suporte e podem ser gerenciadas para outros tipos de recursos.

Pré-requisitos

Para reproduzir as etapas neste artigo, você precisa dos seguintes privilégios:

  • Entre em um cliente de API, como o Graph Explorer, como o usuário para o qual você deseja armazenar o perfil móvel.
  • Conceda ao aplicativo a permissão delegada User.ReadWrite para o usuário conectado.

Etapa 1. Adicionar informações de perfil móvel

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. O aplicativo chama o Microsoft Graph executando a solicitação a seguir para adicionar as informações de perfil móvel ao objeto de recurso do usuário conectado.

Solicitação

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

Resposta

HTTP/1.1 201 Created
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('376bdbfc-e41f-4082-a8cf-b31731465eeb')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "extensionName": "com.contoso.roamingSettings",
    "theme": "dark",
    "color": "purple",
    "lang": "Japanese",
    "id": "com.contoso.roamingSettings"
}

Etapa 2. Recuperar informações de perfil móvel

Quando o usuário entra no aplicativo de outro dispositivo, o aplicativo chama o Microsoft Graph para recuperar seus detalhes de perfil, incluindo a propriedade de navegação de extensões que contém suas configurações de roaming, em seguida, usa esses dados para fornecer a mesma experiência que no outro dispositivo.

Solicitação

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

Resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,mail,mobilePhone,extensions())/$entity",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET me?$select=signInActivity,accountEnabled",
    "id": "376bdbfc-e41f-4082-a8cf-b31731465eeb",
    "displayName": "Raul Razo",
    "mail": null,
    "mobilePhone": null,
    "extensions@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('376bdbfc-e41f-4082-a8cf-b31731465eeb')/extensions",
    "extensions": [
        {
            "@odata.type": "#microsoft.graph.openTypeExtension",
            "extensionName": "com.contoso.roamingSettings",
            "theme": "dark",
            "color": "purple",
            "lang": "Japanese",
            "id": "com.contoso.roamingSettings"
        }
    ]
}

Etapa 3. Alterar informações de perfil móvel

O usuário pode optar por alterar suas informações de perfil de roaming. O aplicativo chama o Microsoft Graph executando a seguinte consulta. A solicitação retorna o código de resposta 204 No Content.

Você deve incluir todas as propriedades no corpo da solicitação, mesmo se quiser atualizar apenas um subconjunto. Caso contrário, o Microsoft Graph removerá as propriedades não especificadas. Para excluir dados, mas manter uma propriedade, defina o valor da propriedade como null.

PATCH https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
Content-type: application/json

{
    "theme":"light",
    "color":"purple",
    "lang":"Swahili"
}

Etapa 4. Excluir o perfil móvel de um usuário

O usuário decide que não quer mais um perfil móvel. Para excluir a propriedade de extensão, o aplicativo chama o Microsoft Graph executando a solicitação a seguir. A solicitação retorna o código de resposta 204 No Content.

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