Exercício – Usar o Microsoft Graph no seu aplicativo Web para recuperar a foto de perfil de um usuário
Você aprendeu todos os conceitos necessários para acessar o perfil de um usuário usando o Microsoft Graph. Agora é hora de criar um aplicativo de cliente que recupere e exiba a foto de um vendedor conectado.
Para concluir esta unidade com êxito, você precisa de uma conta de usuário (de seu locatário desenvolvedor Microsoft 365, por exemplo) com uma imagem de perfil disponível para uso no aplicativo.
Configurar o aplicativo
Neste exercício, irá aceder a um repositório do GitHub, adicionar IDs do Microsoft Entra à aplicação e adicionar código para aceder a uma fotografia com o Microsoft Graph. Se ainda não criou um registo da aplicação Microsoft Entra, conclua o módulo de pré-requisitos antes de continuar.
Para obter o código do aplicativo inicial usado neste exercício, escolha uma das seguintes opções:
Se você usar o Git, clone o projeto usando o comando clonar git:
git clone https://github.com/MicrosoftDocs/mslearn-retrieve-m365-data-with-msgraph-quickstart.git
Se você não usar o Git, acesse https://github.com/MicrosoftDocs/mslearn-retrieve-m365-data-with-msgraph-quickstart no navegador da Web. Selecione o botão Código seguido por Baixar o ZIP. Extraia o arquivo zip no seu computador.
Abra o arquivo no seu editor de código.
O aplicativo contém os seguintes arquivos:
- index.html: define a interface que aparece para um usuário quando ele acessa o site. Ele carrega o script da Biblioteca de Autenticação da Microsoft (MSAL) e os scripts de aplicativos personalizados, fornece uma maneira de o usuário entrar e exibe o nome do usuário após ele entrar.
- auth.js: define a configuração MSAL para associar a aplicação ao Microsoft Entra ID, inicia sessão de um utilizador na aplicação e processa a obtenção de um token de acesso que o Microsoft Graph pode utilizar.
- graph.js: liga para o Microsoft 365 para acessar o perfil conectado
/me
. Ele depende do auth.js para recuperar o token de acesso usado para a chamada da API do Microsoft Graph. - ui.js: lida com elementos da interface do usuário definidos em index.html.
Abra o ficheiro auth.js e localize a constante
msalConfig
:const msalConfig = { auth: { .. } }
Substitua o valor da
clientId
propriedade pelo valor de ID da Aplicação (cliente) copiado da aplicação Microsoft Entra (spa-aad-app) que registou anteriormente. Pode obter este valor na página de descrição geral da aplicação Microsoft Entra (spa-aad-app).No mesmo ficheiro auth.js , localize a
msalConfig.auth.authority
propriedade . Substitua o<your directory ID here>
valor pelo valor de ID do Diretório (inquilino) da aplicação Microsoft Entra (spa-aad-app) que registou anteriormente. Pode obter este valor na página de descrição geral da aplicação Microsoft Entra (spa-aad-app).A
msalConfig
constante deve ter um aspeto semelhante ao seguinte código, com os IDs exclusivos do inquilino do Microsoft Entra e a aplicação registada:const msalConfig = { auth: { clientId: 'b1a37248-53b5-430c-b946-ef83521af70c', authority: 'https://login.microsoftonline.com/b930540b-a147-45bb-8f24-bfbed091aa25', redirectUri: 'http://localhost:8080' } };
Abra o arquivo index.html. Localize a linha
<h4>Welcome <span id="userName"></span></h4>
e adicione o seguinte código imediatamente após ela:<div> <button id="showProfilePhoto" style="display:none" onclick="displayProfilePhoto();">Show profile picture</button> </div> <img id="userPhoto" class="user" alt="User photo" style="display: none;" />
No mesmo arquivo index.html, localize a marca
<head>
. Adicione o seguinte código para definir o estilo do elemento de imagem que você adicionou na etapa anterior:<style> .user { border-radius: 50%; border-style: solid; border-width: 5px; height: 150px; width: 150px; } </style>
Salve o arquivo index.html.
Abra o arquivo graph.js. Adicione uma nova função chamada
getUserPhoto()
ao arquivo, conforme mostrado no código a seguir. Esta função obterá a foto do usuário conectado usando o/me/photo/$value
ponto de extremidade da API do Microsoft Graph.async function getUserPhoto() { ensureScope('user.read'); return await graphClient .api('/me/photo/$value') .get(); }
Salve o arquivo graph.js.
Abra o arquivo ui.js e adicione uma nova função chamada
displayProfilePhoto()
conforme mostrado no código a seguir. Esta função exibirá a resposta da imagem recebida do Microsoft Graph no elemento de imagem que você criou anteriormente.async function displayProfilePhoto() { const userPhoto = await getUserPhoto(); if (!userPhoto) { return; } //convert blob to a local URL const urlObject = URL.createObjectURL(userPhoto); // show user photo const userPhotoElement = document.getElementById('userPhoto'); userPhotoElement.src = urlObject; var showPhotoButton= document.getElementById('showProfilePhoto'); showPhotoButton.style = "display: none"; var imgPhoto= document.getElementById('userPhoto'); imgPhoto.style = "display: block"; }
Abra o arquivo ui.js e adicione o código a seguir ao final da função
displayUI()
existente. Este código mostrará um botão que um usuário conectado pode selecionar para exibir sua foto de perfil. O botão permanecerá oculto se o usuário não estiver conectado.var showPhotoButton= document.getElementById('showProfilePhoto'); showPhotoButton.style = "display: block";
Agora que você adicionou as funções extras e trechos de código para obter a foto de um usuário conectado, a próxima etapa é executar o aplicativo.
Execute seu aplicativo
Agora você estendeu seu aplicativo para mostrar alguns dos arquivos do usuário usando o Microsoft Graph. Verifique se há alguns arquivos na pasta raiz da instância do usuário do OneDrive e execute o aplicativo localmente.
Visualize o aplicativo da Web executando o seguinte comando no terminal:
npm start
Seu navegador deve apontar para
http://localhost:8080
.Selecione o botão Entrar com a Microsoft para entrar com sua conta do Microsoft 365. Certifique-se de que a conta com a qual inicia sessão tem uma fotografia de perfil.
Inicie sessão com uma conta no mesmo inquilino de programador do Microsoft 365 onde registou a aplicação Microsoft Entra.
Depois de fazer login com sucesso, confirme se uma mensagem de boas-vindas e um botão para mostrar uma foto de perfil aparecem.
Selecione o botão Mostrar foto do perfil. A foto do perfil do usuário conectado é exibida. Se o perfil não tiver uma fotografia associada, não será apresentada nenhuma fotografia.