A Microsoft vem desenvolvendo vários serviços de cloud apis e juntando todos eles em um único ponto, ou seja, em uma única API. Porém, pelo que estamos vendo até o momento, é que estão focados em serviços nas nuvens e que há uma relação de produtividade entre as organizações e seus colaboradores, nesse caso, o pacote Office.
A Microsoft vem expandindo os serviços e disponibilizando em sua API unificada. Então significa que as APIs que estão separadas e deixaram de funcionar? Não, serão migradas para o Microsoft Graph, assim como ocorreu com o Office Graph.
E essa única API vai disponibilizar que tipo de interação?
Acesso a dados – É possível acessar meus dados, perfil, grupos ou até consultar algumas mensagens de e-mails, através de chamadas como /me, /groups, /messages e assim por diante. Reforço que se fosse somente realizar acesso a dados isso seria mais uma API, mas isso não é tudo.
Dados Transversais – Essa é uma das interações que contribui para diferenciar o Microsoft Graph de uma simples API de consulta. Os dados tem uma ligação entre diversas outras informações – isso faz parte da Teoria dos Grafos. Em resumo é o fato de conseguir atravessar informações sobre as ligações entre os nós de informações conectadas. Como por exemplo, uma url /drive/items/<id>/lastModifyByUser, ou seja, é possível acessar um item no drive que retornará informações do usuário que realizou a última modificação em um determinado arquivo.
Teoria dos Grafos:
A Teoria dos Grafos é um ramo da matemática que estuda as relações entre os objetos de um determinado conjunto. Para tal são empregadas estruturas chamadas de grafos, G(V,E), onde V é um conjunto não vazio de objetos denominados vértices e E é um subconjunto de pares não ordenados de V, chamados arestas.
Dependendo da aplicação, arestas podem ou não ter direção, pode ser permitido ou não arestas ligarem um vértice a ele próprio e vértices e/ou arestas podem ter um peso (numérico) associado. Se as arestas têm uma direção associada temos um dígrafo (grafo orientado). Um grafo com um único vértice e sem arestas é conhecido como grafo trivial.
Estruturas que podem ser representadas por grafos estão em toda parte e muitos problemas de interesse prático podem ser formulados como questões sobre certos grafos. Por exemplo, a estrutura de ligações da Wikipédia pode ser representada por um dígrafo: os vértices são os artigos da Wikipédia e existe uma aresta do artigo A para o artigo B se e somente se A contém um link para B. Dígrafos são também usados para representar máquinas de estado finito. O desenvolvimento de algoritmos para manipular grafos é um tema importante da ciência da computação.
Acessando dados Inteligentes – A Microsoft também vem criando mecanismos de aprendizagem de máquina. Isso, irá permitir que as informações tenham bases em diversas esferas, sem a necessidade de acessar um caminho especifico, como por exemplo: Quando for necessário trazer todos os documentos que são tendências entre todos os usuários que compartilho informações. Para uma simples API de consulta, neste caso, é necessário realizar a consulta de cada documento e realizar uma lógica por trás disso. Porém o Microsoft Graph faz esse trabalho da lógica, com o conceito de acesso a dados inteligentes, disponibilizando um único caminho pode então realizar essa busca, /insigths/trends. Para quem tem o Office 365 na empresa e acessa o Delve, é uma plataforma que pode ser um ótimo exemplo da utilização de dados inteligentes através do Microsoft Graph.
Quais foram as principais mudanças
Quando se fala de acesso a partir de um ponto de acesso ao usuário, é necessário realizar o login através de uma das contas da Microsoft, seja do tipo Work/School ou Microsoft Accounts. Porém, isso dificultava um pouco a consulta de informações em uma dessas contas, pois eram cenários de informações bem diferentes, ou seja, várias APIs para acessar dados e isso trazia uma certa confusão.
Agora temos uma unificação das APIs e isso inclui uma camada de autenticação unificada. Ficou mais fácil ter acesso as informações necessárias através de um determinado ponto de autenticação, seja lá qual for o tipo de conta. A figura abaixo representa bem essa consolidação entre os serviços disponíveis pelo Microsoft Graph.
Essa unificação traz benefícios para o desenvolvimento de aplicações. Foi realizada a integração com SharePoint Online manipulando as informações de um determinado departamento. Nesse momento somos abordados pelo Product Owner que diz: Que legal, você fez a integração da nossa aplicação com o SharePoint, poderia agora fazer com o Outlook? Nesse momento teríamos que aprender a API do Outlook. Mas agora não será mais necessário, devido consolidação dos serviços.
Do ponto de vista comercial, gerará menos custos de desenvolvimento e agregará mais valores para as entregas que tiverem suas integrações partindo de um único ponto.
Abaixo, seguem alguns endpoints necessários para realizar a anterior integração.
Mas, como ficou a unificação, quais são os padrões e endpoints que acessaremos?
Há uma fácil unificação, para ler meu serviço o caminho seria https://graph.microsoft.com/v1.0/me. Perceba que há o caminho da versão? Isso é muito bom, porque podemos mudar de uma versão para outra e até mesmo testá-las.
Abaixo nós temos uma tabela com alguns dos serviços que já estão disponíveis na versão 1.0 e uns da versão beta. Visite o site do Microsoft Graph na parte de documentação e lá verá essa lista de serviços.
Comecemos a entender na prática
Então como começar os estudos sem a necessidade de utilizar o Graph Explorer disponível no site?
Bem, comece primeiramente entendendo a questão da autorização, ou seja, o que de fato, é necessário para que a minha aplicação possa acessar os dados a partir de um ponto de autenticação. Ótimo, falamos na palavra autenticação e autorização, isso soa ao OAuth 2.0 Flow – não precisamos entrar em muitos detalhes sobre esse fluxo, pois já é bem conhecido.
Costumo usar um aplicativo muito bom para testar chamadas de APIs, é o Postman, utilizaremos ele para resgatar o Authentication Token e solicitaremos informações ao Microsoft Graph.
Primeiro passo é configurar um Azure Active Directory para conectar com os usuários do Office 365 – este link explica como. Abaixo o que foi configurado:
Depois de configurado o Active Directory, precisamos autorizar o aplicativo, neste caso o Postman, para realizar chamadas ao Graph, então é só registrar a app – serão passos simples, pois ainda não estamos construindo uma aplicação. Abaixo a forma resumida:
Para a próxima tela escolha a opção: “Adicionar um aplicativo que minha organização esteja desenvolvendo”
Preencha as seguintes propriedades
Criado o aplicativo agora vá para a aba de configurações e copie o Client ID e crie um Secret Client ID (guarde em algum lugar) iremos precisar deles. Também preencha a propriedade URL de Resposta com o valor: https://www.getpostman.com/oauth2/callback
Agora vamos autorizar a nossa aplicação a acessar o
Microsoft Graph. Click no botão de adicionar aplicativo e escolha o Microsoft Graph – coloquei todas as permissões porque o intuito é estudar a maioria dos EndPoints, então liberei tudo.
Lembre-se de copiar os EndPoints:
Authorization OAuth 2.0:
https://login.microsoftonline.com/<id>/oauth2/authorize?resource=https://graph.microsoft.com/
Token OAuth:
https://login.microsoftonline.com/<id>/oauth2/token
Usando a aplicação Client (PostMan)
Agora vamos solicitar a nossa aplicação “Client” para fazer a parte de autenticação, receber o token e aplicar em nossos Headers, e assim ter acesso ao Microsoft Graph – lembrando que esse fluxo de autorização faz parte do Oauth Flow. Abaixo o diagrama que mostra o fluxo.
Abaixo a principal tela inicial do Postman.
Escolha o OAuth 2.0 como o tipo de autorização que o post ira realizar e ai em Get New Acess Token tem as seguintes informações:
Após essa configuração, ao clicar em Request Token irá aparecer a tela de autenticação de contas da Microsoft. Realize a autenticação com um dos usuários do Active Directory que foi configurado. Tudo ok, o Postman salvará esse Token, e então pedimos para adicioná-los na Header da requisição:
Com o endereço https://graph.microsoft.com/v1.0/me retornará como resposta as informações, no formato Json, do usuário autenticado.
Agora vamos retornar a foto desse usuário, é só colocar o endereço http://graph.microsoft.com/v1.0/me/photo/$value ou se eu quero pegar de algum usuário especifico http://graph.microsoft.com/v1.0/users/<id>/photo/$value
Agora estamos conectados ao Microsoft Graph.
Referências:
Lambda3 - https://www.lambda3.com.br/2016/11/vamos-falar-do-microsoft-graph/
Microsoft Graph – https://graph.microsoft.io/en-us/docs
Azure Active Directory – https://azure.microsoft.com/pt-br/services/active-directory/
PnP Office – https://github.com/OfficeDev/PnP/wiki
Autenticação do Microsoft Graph: https://graph.microsoft.io/en-us/docs/authorization/auth_overview
Suíte Tecnológica da Microsoft:
⬛◼◾▪ Social Media ▪◾◼⬛
⬛◼◾▪ Blogs ▪◾◼⬛
⬛◼◾▪ CONTATO ▪◾◼⬛
brazilsalesforceeffectiveness@gmail.com