m-exchange-api-java-code-cover

Microsoft Exchange API no seu código Java

Ana NetoCompany news, Connectors, Technical Leave a Comment

O seu código Java precisa de enviar correio utilizando o Microsoft Exchange Server. Ou você precisa ler e-mails do Microsoft Exchange Server usando o Java. Ou talvez seja nos calendários que você está interessado e está tentando obter informações a partir daí ou tentando sincronizar diferentes calendários? Como você trabalha com o Microsoft Exchange Calendário API em Java?

A forma clássica de integração com qualquer tipo de software seria utilizar a sua API. Então, se você está tentando se integrar com o Microsoft Exchange, você provavelmente está tentando descobrir como usar a API do Exchange.

APIs mudam com o tempo - um pouco de história da API do Microsoft Exchange

A forma mais comum de integração do Java ao Exchange costumava ser o Exchange Web Services (EWS). O EWS SDK para Java foi lançado como parte do Exchange 2007 da Microsoft. É uma API baseada em SOAP, mas o problema é que, em julho de 2018, a Microsoft anunciou que não faria mais atualizações de recursos para ele. Embora o EWS SDK para Java continue a receber atualizações de segurança por um tempo, não faz sentido iniciar um projeto usando-o no momento.

Outra alteração importante é que, a partir de 13 de outubro de 2020, o suporte para a Autenticação Básica nos Serviços Web Exchange (EWS) deixará de existir por completo. A Microsoft quer que tudo passe para o OAuth. O OAuth é, de facto, uma opção muito melhor e está mesmo aprovado como Norma Internacional (ISO/IEC). Se nunca ouviu falar do OAuth, pode consultar aqui e depois ir mais fundo aqui. E embora seja um movimento para melhor, o fato é que quando o suporte à Autenticação Básica terminar, os aplicativos não poderão mais usar a Autenticação Básica ao conectar-se ao Exchange usando o EWS.

Então, e agora?

Se você quiser se conectar ao Microsoft Exchange via API de Java e quiser seguir as recomendações da Microsoft, você deve usar o Microsoft Graph.

O Microsoft Graph foi criado em 2015 com base no Office 365 e delega chamadas para diferentes serviços Office 365 Cloud através de um único ponto de extremidadehttps://graph.microsoft.com/. Evoluiu com o tempo de modo que agora inclui o acesso a outros produtos Microsoft como o Exchange.

Image

Dentro do Microsoft Graph você pode usar o Microsoft Graph API ou Microsoft Graph data connect. De qualquer forma, certifique-se de verificar primeiro a Termos de Uso. A Microsoft é bastante específica sobre o que você pode e não pode fazer com a API deles, então dê uma olhada.

Para a maioria dos casos, o Microsoft Graph API é o caminho a seguir. Veremos um pouco mais sobre isso abaixo.

Você deve considerar a conexão de dados Microsoft Graph se você precisar lidar com dados grandes ou se você precisar de consentimento granular (o cliente terá que rever os campos específicos e quaisquer exclusões que não são possíveis com a API regular). Mas existe uma regra importante que deve ter em conta se estiver a considerar a ligação de dados do Microsoft Graph: apenas enviará dados do inquilino Office 365 do cliente para o inquilino Azure associado.

Vamos voltar para a API regular, pois essa é a opção mais comum. Existem atualmente 2 versões das APIs REST do Microsoft Graph - beta e v1.0.Você pode dar uma olhada na versão versão betamas, é claro, para qualquer desenvolvimento sério você deve se ater à versão de produção 1.0. Para essa versão, você pode verificar a documentação e o Java SDK. Sim, se você está apenas começando com esta API, há muito estudo envolvido!...

Para então utilizar a API, você precisará primeiro registrar seu aplicativo. Eu sei que este não é o primeiro passo mais emocionante, mas se você estiver usando a API diretamente, você precisará de um ID de aplicação para representar sua aplicação nas chamadas da API. Para isso, você precisará de uma conta de trabalho/escola ou uma conta Microsoft e então você pode escolher entre se registrar usando:

- o Portal de Registo de Aplicações Microsoft

- o portal de gestão do Azure Active Diretory (recomendado para aplicações de classe empresarial)

Se a sua aplicação é um cliente confidencial (um serviço), você deve criar uma nova senha de aplicação para protegê-la. Após o registo, será criada uma ID de aplicação para a sua aplicação e exibida na página de propriedades da sua nova aplicação.

Finalmente, note que o Microsoft Graph também está mudando o tempo todo. Para ter uma idéia das mudanças ao longo do tempo (desde dezembro de 2015), você pode dar uma olhada no changelog. Se você quiser trabalhar com ele, recomendamos que você sempre verifique qual é a versão de produção atual da API.

Há uma maneira melhor?

Se não estás muito interessado:

- Trabalhar com a Microsoft em primeiro lugar

- Ter de passar muito tempo a estudar a documentação

- Ter de suportar os erros causados por futuras alterações à API do Microsoft Graph

Você pode estar se perguntando se há alguma alternativa. Sim, há uma maneira melhor!

Em vez de usar a API diretamente, você pode colocar uma fina camada entre você e a API. Nós chamamos esta camada de Connect Bridge. Esta camada foi construída para ser fina o suficiente para ter tudo rápido e eficiente, mas espessa o suficiente para que você nunca toque no Microsoft Exchange ou mesmo na API gráfica da Microsoft.

ligação-ponte-conectores-m-m-código de troca-api-java1

Connect Bridge é uma ferramenta paga, mas você pode verificar o Connect Bridge teste gratuito disponível para que você possa ver se funciona para você. A beleza desta ferramenta é que ela garante compatibilidade para frente e para trás.

Você constrói o seu código Java integrando com Connect Bridge, e depois os seus utilizadores podem atualizar Exchange, a Microsoft pode lançar novas versões da API... e você não terá de se preocupar com isso. Não importa o que virá depois da API Graph da Microsoft v1.0. Sua solução ainda funcionará! Escreve o seu código uma vez e depois toda a complexidade é algo com que simplesmente nunca terá de se preocupar.

Não há nenhuma limitação ao ambiente onde você pode usar esta ferramenta. Você pode executá-la em

- Uma plataforma SaaS construída em Azure gerida pelo Connecting software

- No local ou nos seus próprios servidores na nuvem ou máquinas virtuais (auto-hospedado)

Como funciona o Connect Bridge? O que está a fazer nos bastidores? Ele basicamente traduz instruções SQL padrão em chamadas API. Em seu código parece que você está acessando uma base de dados relacional usando JDBC (ODBC e serviços Web também são suportados). Você escreve instruções SELECT, INSERT, UPDATE e DELETE. Você está usando o que parece ser procedimentos armazenados. Mas tudo isso é apenas uma camada de abstracção.

Você não está acessando a base de dados do Microsoft Exchange (e acredite em mim, você não quer fazer isso!). Mas parece que você está. O Connect Bridge vem com uma ferramenta Query onde você pode testar suas (falsas) consultas, ver as (falsas) tabelas com suas (falsas) colunas ou até mesmo encontrar um procedimento conveniente (falso) armazenado. Como eu disse, é exatamente como se estivesse usando um banco de dados SQL, mas é apenas uma abstração.

Depois de fazer todos os testes que quiser, basta colocar a ligação e as consultas no seu código como se estivesse a utilizar JDBC para se ligar a uma base de dados... e é tudo! Tem agora uma solução funcional que não requer qualquer manutenção. Todo o esforço de manutenção fica por conta do Connect Bridge. É por isso que esta ferramenta é uma ferramenta paga. Penso que esta é uma ideia muito inteligente... vale cada cêntimo!

Também é bom notar que esta ferramenta também lida com segurança e autenticação, o que pode levar um tempo considerável se você estiver se desenvolvendo do zero.

Conclusão

Vimos como acessar dados do Microsoft Exchange em Java pode ser feito facilmente usando a plataforma de integração Connect Bridge.

select_exchange-m-exchange-api-java-code

E há mais boas notícias: isto também é possível com Microsoft Dynamics e Microsoft SharePoint! De facto, pode ligar-se a qualquer software Microsoft, ao Salesforce, e a muitos outros. Você só precisa obter o Connect Bridge, que é a plataforma de integração base e escolher o conector certo.

Se você quiser saber quais conectores estão disponíveis atualmente no Connect Bridge, o lugar para ir é https://www.connecting-software.com/connectors/

conectores-m-código de troca-api-java

Se quiser saber quais são os conectores mais recentes desta vasta coleção, dê uma vista de olhos ao Connect Bridges Dynamics 365 Finanças e Operações e Dynamics 365 Business Central conectores.

Também é importante saber que existem alguns produtos prontos que utilizam Connect Bridge e que são soluções totalmente out-of-the-box. Por exemplo, o Connect Bridge, CB Exchange Server Sync permite que você escolha a sincronização personalizada de calendários, pastas de e-mail, tarefas, contatos, pastas públicas sem nenhuma codificação.

Esperamos que este artigo tenha sido útil para você! Aqui estão mais alguns posts que temos no nosso blog discutindo outras possibilidades de integração:


Sobre o Autor

Ana Neto

Por Ana Neto, consultor técnico em Connecting Software.

"Sou engenheiro de software desde 1997, com uma paixão mais recente pela escrita e por falar em público. Tem alguma pergunta ou comentário sobre este artigo? Gostaria muito de receber o seu feedback, deixe um comentário abaixo!"

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.