m-exchange-api-java-code-cover

API de Microsoft Exchange en tu Código Java

Ana NetoCompany news, Connectors, Technical Leave a Comment

Su código Java necesita enviar el correo usando el Servidor Microsoft Exchange. O necesitas leer el correo electrónico del Servidor Microsoft Exchange usando Java. O tal vez son los calendarios en los que estás interesado y estás tratando de obtener información de allí o tratando de sincronizar diferentes calendarios? ¿Cómo trabajas con la API del Calendario Exchange de Microsoft en Java?

La forma clásica de integrarse con cualquier tipo de software sería utilizar su API. Por lo tanto, si usted está tratando de integrarse con Microsoft Exchange probablemente está tratando de encontrar la forma de utilizar la API de Exchange.

Las API cambian con el tiempo: un poco de historia de la API Exchange de Microsoft

La forma más común de integrar desde Java a Exchange solía ser el Exchange Web Services (EWS). EWS SDK para Java se lanzó como parte de Microsoft Exchange 2007. Se trata de una API basada en SOAP, pero la cuestión es que en julio de 2018 Microsoft anunció que dejaría de hacer actualizaciones de funciones para ella. Aunque EWS SDK para Java seguirá recibiendo actualizaciones de seguridad durante un tiempo, no tiene sentido iniciar un proyecto utilizándolo en este momento.

Otro cambio importante es que a partir del 13 de octubre de 2020 el soporte para la Autenticación Básica en Exchange Web Services (EWS) cesará por completo. Microsoft quiere que todo se pase a OAuth. OAuth es en realidad una opción mucho mejor e incluso está aprobada como Estándar Internacional (ISO/IEC). Si no has oído hablar de OAuth, puedes consultar aquí y luego ir más profundo aquí. Y aunque es un movimiento para mejor, el hecho es que cuando el soporte para la Autenticación Básica termine, las aplicaciones ya no podrán usar la Autenticación Básica cuando se conecten a Exchange usando EWS.

¿Y ahora?

Si quieres conectarte a Microsoft Exchange vía API desde Java y quieres seguir las recomendaciones de Microsoft, debes utilizar Microsoft Graph.

Microsoft Graph se creó en 2015 sobre Office 365 y delega las llamadas a los distintos servicios en la nube de Office 365 a través de un único punto final.https://graph.microsoft.com/. Ha evolucionado con el tiempo de manera que ahora incluye el acceso a otros productos de Microsoft como el Exchange.

Image

Dentro de Microsoft Graph puedes usar la API de Microsoft Graph o la conexión de datos de Microsoft Graph. De cualquier manera, asegúrate de revisar primero las Condiciones de uso. Microsoft es bastante específico sobre lo que puedes y no puedes hacer con su API, así que echa un vistazo.

Para la mayoría de los casos, Microsoft Graph API es el camino a seguir. Veremos un poco más sobre ello a continuación.

Debería considerar Microsoft Graph data connect si necesita manejar big data o si necesita un consentimiento granular (el cliente podrá revisar los campos específicos y cualquier exclusión, lo que no es posible con la API regular). Pero hay una regla importante que debe tener en cuenta si está considerando Microsoft Graph data connect: solo enviará datos desde el tenant Office 365 del cliente al tenant Azure asociado.

Volvamos a la API normal, ya que es la opción más común. Actualmente existen 2 versiones de Microsoft Graph REST API - beta y v1.0.Puedes echar un vistazo a la versión beta...pero, por supuesto, para cualquier desarrollo serio debes ceñirte a la versión de producción 1.0. Para esa versión, puede consultar la documentación y la Java SDK. Sí, si estás empezando con esta API hay que estudiar mucho...

Para poder utilizar la API, primero tendrá que registrar su aplicación. Sé que este no es el primer paso más emocionante, pero si estás usando la API directamente, necesitarás un ID de aplicación para representar tu aplicación en las llamadas a la API. Para esto necesitarás una cuenta de trabajo/escuela o una cuenta de Microsoft y luego puedes elegir entre registrarte usando:

- el portal de registro de aplicaciones de Microsoft

- el portal de gestión de Azure Active Directory (recomendado para aplicaciones de clase empresarial)

Si tu aplicación es un cliente confidencial (un servicio), debes crear una nueva contraseña de aplicación para asegurarla. Una vez que te hayas registrado, se creará un ID de aplicación para tu app y se mostrará en la página de propiedades de tu nueva app.

Por último, tened en cuenta que Microsoft Graph también está cambiando todo el tiempo. Para tener una idea de los cambios a lo largo del tiempo (desde diciembre de 2015), puedes echar un vistazo a lo changelog. Si quieres trabajar con él, te recomendamos que siempre compruebes cuál es la versión de producción actual de la API.

¿Hay una mejor manera?

Si no te gusta mucho:

- Trabajar con Microsoft en primer lugar

- Tener que dedicar mucho tiempo a estudiar la documentación

- Tener que soportar los errores provocados por futuros cambios en la API Graph de Microsoft.

Te preguntarás si hay alguna alternativa. ¡Sí, hay una mejor manera!

En lugar de usar la API directamente, puedes poner una fina capa entre tú y la API. Llamamos a esta capa Connect Bridge. Esta capa se construyó para ser lo suficientemente delgada para tener todo rápido y eficiente, pero lo suficientemente gruesa para que nunca toques el Microsoft Exchange o incluso el Microsoft Graph API.

connect-bridge-connectors-m-exchange-api-java-code1

Connect Bridge es una herramienta pagada, pero puedes comprobar el Connect Bridge prueba gratuita disponible para que puedas ver si funciona para ti. La belleza de esta herramienta es que asegura la compatibilidad con versiones anteriores y posteriores.

Construyes tu código Java integrándolo con Connect Bridge, y luego tus usuarios pueden actualizar a Exchange, Microsoft puede lanzar nuevas versiones de la API... y tú no tendrás que preocuparte. No importa lo que venga después de Microsoft Graph API v1.0. Tu solución seguirá funcionando. Escribes tu código una vez y luego toda la complejidad es algo de lo que simplemente no tienes que preocuparte nunca.

No hay ninguna limitación en el entorno en el que se puede utilizar esta herramienta. Puedes ejecutarla en

- Una plataforma SaaS construida en Azure y gestionada por Connecting software

- En sus instalaciones o en sus propios servidores en nube o máquinas virtuales (autoalojado)

¿Cómo funciona el Connect Bridge? ¿Qué está haciendo entre bastidores? Básicamente traduce las sentencias SQL estándar a llamadas API. En su código parece que está accediendo a una base de datos relacional usando JDBC (también se soportan ODBC y servicios Web). Escribes las sentencias SELECT, INSERT, UPDATE y DELETE. Estás usando lo que parece ser procedimientos almacenados. Pero todo eso es sólo una capa de abstracción.

No estás accediendo a la base de datos de Microsoft Exchange (y créeme, no quieres hacerlo). Pero parece que sí. El Connect Bridge viene con una herramienta de consulta donde puedes probar tus consultas (falsas), ver las tablas (falsas) con sus columnas (falsas) o incluso encontrar un procedimiento almacenado (falso) conveniente. Como he dicho, se siente exactamente como si estuviera utilizando una base de datos SQL, pero es sólo una abstracción.

Una vez que hayas hecho todas las pruebas que quieras, sólo tienes que poner la conexión y las consultas en tu código como si estuvieras usando JDBC para conectarte a una base de datos... ¡y listo! Ahora tienes una solución de trabajo que requerirá cero mantenimiento. Todo el esfuerzo de mantenimiento corre por cuenta de Connect Bridge. Por eso esta herramienta es de pago. Creo que es una idea muy inteligente... ¡vale cada céntimo!

También es bueno señalar que esta herramienta también se encarga de la seguridad y la autenticación, lo que puede llevar una cantidad considerable de tiempo si se está desarrollando desde cero.

Conclusión

Hemos visto cómo el acceso a los datos de Microsoft Exchange en Java se puede hacer fácilmente usando la plataforma de integración Connect Bridge.

select_exchange-m-exchange-api-java-code

Y hay más buenas noticias: ¡esto también es posible con Microsoft Dynamics y Microsoft SharePoint! De hecho, puedes conectarte a cualquier software de Microsoft, a Salesforce y a muchos otros. Sólo tienes que obtener el Connect Bridge, que es la plataforma base de integración y elegir el conector correcto.

Si quieres saber qué conectores están disponibles actualmente en el Connect Bridge, el lugar para ir es https://www.connecting-software.com/connectors/

conectores-m-exchange-api-java-code

Si quiere saber cuáles son los conectores más nuevos de esta amplia colección, eche un vistazo a la página de Connect Bridges Dynamics 365 Finance & Operations y Dynamics 365 Business Central .

También es importante saber que hay algunos productos ya preparados que utilizan el Connect Bridge y que son soluciones totalmente listas para usar. Por ejemplo, CB Exchange Server Sync le permite elegir la sincronización personalizada unilateral o bidireccional de calendarios, carpetas de correo electrónico, tareas, contactos, carpetas públicas sin ningún tipo de codificación.

¡Esperamos que este artículo le haya sido útil! Aquí hay algunas publicaciones más que tenemos en nuestro blog discutiendo otras posibilidades de integración:


Sobre el autor

Ana Neto

Por Ana Neto, asesor técnico en Connecting Software.

"Soy ingeniero informático desde 1997, con una afición más reciente por escribir y hablar en público. ¿Tiene alguna pregunta o comentario sobre este artículo? Me encantaría conocer tu opinión, ¡deja un comentario a continuación!"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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