Arquitectura, buenas prácticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016

Utilizar las API’s de Office 365 en aplicaciones móvil híbridas

Office365DevPodcastLogo600x600_01Recientemente publiqué un artículo de cómo utilizar las API’s de Office 365 en aplicaciones móviles nativas desarrolladas con Xamarin. Microsoft continúa con su pensamiento de que se debe consumir cualquier servicio de Azure desde cualquier parte y cualquier dispositivo. Por este motivo, también desde código JavaScript, va a ser posible autentificar nuestros desarrollos y consumir los servicios de Office 365. En este post vamos a ver cómo en un desarrollo utilizando Cordova, podemos consumir las API’s de Office 365.

Herramientas utilizadas para este desarrollo

Nota: También es posible bien hacer uso de Visual Studio 2015. En caso de no querer utilizar este IDE, tendrías que buscar alguna forma de obtener los ficheros JS del paquete de Nuget para poder realizar la autenticación.

Manos a la obra

  1. Abrimos Visual Studio y nos creamos un Proyecto JavaScript-> Apache Cordova Tools.ApacheCordova
  2. Agregamos el paquete de Nuget de Microsoft Office 365 API’s Client Libraries for Cordova Applications.CordovaNuggetEste paquete nos añade los siguientes ficheros dentro de nuestra solución:FicherosAñadidos
  3. Ahora el siguiente paso es indicar que establezca la conexión con Office 365. Para ello, tendremos que añadir dentro de nuestro proyecto un código como el siguiente:
    var authContext = newO365Auth.Context();
    authContext.getIdToken('https://outlook.office365.com/')
    .then(function(token) {
        // Promise callback: Authentication succeeded
        client = newExchange.Client(
            'https://outlook.office365.com/ews/odata',
            token.getAccessTokenFn('https://outlook.office365.com')
        );
    });
    

    Este código lo que hace es buscar el token de Office365 que debe de estar en nuestro navegador. En caso contrario, el siguiente paso es solicitar la autenticación de Office 365 por pantalla.

  4. Una vez ya estamos autenticados, podemos realizar consultas contra las API’s de Office 365. Por ejemplo, para mostrar todos los correos, podríamos utilizar un código como el siguiente:
    / Use getFolder to access Inbox folder
    client.me.folders.getFolder("Inbox").fetch()
    .then(function(folder) {
        // Retrieve all the messages
        folder.messages.getMessages().fetch()
        .then(function(mails) {
            // mails.currentPage contains all the mails in Inbox
        });
    });
    

    Otro ejemplo sería si queremos obtener todos los contactos, podríamos utilizar el siguiente código:

    client.me.contacts.getContacts().fetch()
    .then(function(contacts) {
        // contacts.currentPage contains the contacts information
    });
    

Estos últimos métodos están incluidos dentro de las librerías js que nos hemos descargados de Nugget, pero también se pueden realizar consultas directas a la API Rest, debido a que ya hemos obtenido las credenciales.

Otro aspecto que hay que tener en cuenta es que para utilizar esta aplicación, debemos de obtener un ID de aplicación en Azure e indicar que tipos de permisos son los que va a tener el usuario. Como: permisos para leer contactos, email, ficheros, etc. Para ver cómo poder generar este ID, os recomiendo el post que escribí hace poco: “Registrar una Aplicación en el portal de Azure”.

Conclusión

Lejos quedan los tiempos en los que Microsoft se cerraba y solamente facilitaba la vida en sus desarrollos a tecnologías propias de Microsoft. Ahora ha visto que para poder llegar a un mayor número de desarrolladores es necesario que sus servicios tengan todas las API’s necesarias. A parte de este hecho, tenemos que estar contentos por trabajar en una plataforma muy rica y potente para los desarrolladores, lo que hace que cada vez se ofrezcan mejores soluciones a los clientes.

Referencias
Office 365 Client APIs for Hybrid Mobile Apps

 

mm

Sobre Adrián Díaz

Adrián Díaz es Ingeniero Informático por la Universidad Politécnica de Valencia. Es MVP de Microsoft en la categoría Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnologías Microsoft más de 10 años y desde hace 3 años está centrado en el desarrollo sobre SharePoint. Actualmente es Software & Cloud Architect Lead en ENCAMINA.
Esta entrada ha sido publicada en Azure, javascript, Office 365 y etiquetada como , , . Enlace permanente .

Suscríbete a Desarrollando sobre SharePoint

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores