Saltar a contenido

Microsoft 365 - Credenciales

Utiliza el complemento BotCity para Credenciales de Microsoft para autenticar tu cuenta y poder utilizar los servicios de Microsoft 365.

Warning

Para poder utilizar este complemento, necesitas tener una cuenta de Microsoft 365 con un proyecto creado y configurado correctamente.

Para más detalles, consulta la sección Creación de Credenciales de Microsoft 365.

Instalación

pip install botcity-ms365-credentials-plugin

Importando el Complemento

Después de instalar este paquete, el siguiente paso es importar el paquete en tu código y comenzar a utilizar las funciones.

from botcity.plugins.ms365.credentials import MS365CredentialsPlugin

Configurando las credenciales del proyecto

Primero, autentiquemos nuestra cuenta de Microsoft 365 utilizando las credenciales del proyecto creadas en la sección Creación de Credenciales de Microsoft 365.

En este punto, necesitaremos la información que extrajimos durante el proceso, el ID de la Aplicación (cliente) y el Valor del Secreto del proyecto.

# Instantiate the plugin
service = MS365CredentialsPlugin(
    client_id='<APPLICATION ID>',
    client_secret='<SECRET VALUE>',
)

Definiendo alcances y autenticando

En este paso, definiremos el alcance de los servicios que queremos utilizar.

Para definir los alcances que se utilizarán, utilizaremos los permisos que agregamos al proyecto como referencia.

Puedes crear una lista de alcances utilizando los valores definidos en la clase Scopes, la siguiente tabla describe los alcances disponibles:

Alcance Descripción
Scopes.BASIC Autenticación básica, utilizada para los permisos User.Read, offline_access
Scopes.FILES_READ Utilizado para el permiso Files.Read.All
Scopes.FILES_READ_WRITE_ALL Utilizado para el permiso Files.ReadWrite.All
Scopes.SITES_READ_ALL Utilizado para el permiso Sites.Read.All
Scopes.SITES_READ_WRITE_ALL Utilizado para el permiso Sites.ReadWrite.All
Scopes.MAIL_READ Utilizado para el permiso Mail.Read
Scopes.MAIL_SEND Utilizado para el permiso Mail.Send
Scopes.MAIL_READ_WRITE Utilizado para el permiso Mail.ReadWrite (leer, escribir y enviar correos)

Important

Al instanciar el complemento, la lista de alcances debe coincidir con los permisos agregados al proyecto.

Este paso es esencial para asegurar que no haya problemas de permisos al utilizar las APIs.

from botcity.plugins.ms365.credentials import MS365CredentialsPlugin, Scopes

# Instantiate the plugin
service = MS365CredentialsPlugin(
    client_id='<APPLICATION ID>',
    client_secret='<SECRET VALUE>',
)
# Defining the scopes list
scopes_list = [Scopes.BASIC, Scopes.FILES_READ_WRITE_ALL, Scopes.MAIL_READ_WRITE]

service.authenticate(scopes=scopes_list)

Tip

El alcance FILES_READ_WRITE_ALL que se refiere al permiso Files.ReadWrite.All, ya es suficiente para utilizar los servicios de OneDrive y Excel.

Los alcances de ejemplo anteriores serían suficientes para utilizar los servicios de OneDrive, Excel y Outlook.

Finalizando el flujo de autenticación

Warning

En la primera ejecución, es necesario que el proceso se realice manualmente para que se genere el archivo de token.

Para las ejecuciones posteriores, la autenticación se realiza automáticamente si el archivo de token ya existe y sigue siendo válido.

En este punto, al ejecutar el código por primera vez, se mostrará un enlace en la terminal que debe abrirse en el navegador.

En el navegador abierto, debes iniciar sesión en tu cuenta de Microsoft que se está utilizando, copiar la URL completa que se generó y pegarla en la terminal donde ejecutaste el código.

La URL generada será algo como esto:

URL de Autenticación

Después de eso, se creará un archivo llamado o365_token.txt. Este archivo se utilizará para las siguientes autenticaciones, no es necesario realizar este proceso nuevamente hasta que el token expire.

Utilizando los servicios de Microsoft 365

En este punto, ya tienes una instancia de MS365CredentialsPlugin correctamente configurada.

Puedes acceder directamente a las APIs a través de la propiedad ms365_account, o utilizar esta instancia del complemento al instanciar los complementos de OneDrive, Excel y Outlook.