Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

Mostrando postagens com marcador Teoria dos Grafos. Mostrar todas as postagens
Mostrando postagens com marcador Teoria dos Grafos. Mostrar todas as postagens

O que é o Microsoft Graph?

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:


Envie seus comentários e sugestões e compartilhe este artigo! 
⬛◼◾▪ Social Media ▪◾◼⬛
• FACEBOOK • TWITTER • INSTAGRAM • TUMBLR • GOOGLE+ • LINKEDIN • PINTEREST

⬛◼◾▪ Blogs ▪◾◼⬛ 


⬛◼◾▪ CONTATO ▪
brazilsalesforceeffectiveness@gmail.com
diHITT - Notícias