Ir para o conteúdo

Microsoft 365 - Credenciais

Use o plugin BotCity para credenciais da Microsoft para autenticar sua conta e poder utilizar os serviços do Microsoft 365.

Aviso

Para poder usar este plugin, você precisa ter uma conta Microsoft 365 com um projeto criado e configurado corretamente.

Para mais detalhes, veja a seção Criando Credenciais do Microsoft 365

Instalação

pip install botcity-ms365-credentials-plugin

Importando o Plugin

Depois de instalar este pacote, a próxima etapa é importar o pacote no seu código e começar a usar as funções.

from botcity.plugins.ms365.credentials import MS365CredentialsPlugin

Configurando as credenciais do projeto

Primeiro, vamos autenticar nossa conta do Microsoft 365 usando as credenciais do projeto criado na seção Criando Credenciais do Microsoft 365.

Neste ponto, precisaremos das informações que extraímos durante o processo, o Application (client) ID e o Secret Value do projeto.

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

Definindo escopos e autenticando

Nesta etapa, definiremos o escopo dos serviços que queremos usar.

Para definir os escopos que serão usados, usaremos as permissões que adicionamos ao projeto como referência.

Você pode criar uma lista de escopos usando os valores definidos na classe Scopes, a tabela abaixo descreve os escopos disponíveis:

Escopo Descrição
Scopes.BASIC Autenticação básica, usado para as permissões User.Read, offline_access
Scopes.FILES_READ Usado para a permissão Files.Read.All
Scopes.FILES_READ_WRITE_ALL Usado para a permissão Files.ReadWrite.All
Scopes.SITES_READ_ALL Usado para a permissão Sites.Read.All
Scopes.SITES_READ_WRITE_ALL Usado para a permissão Sites.ReadWrite.All
Scopes.MAIL_READ Usado para a permissão Mail.Read
Scopes.MAIL_SEND Usado para a permissão Mail.Send
Scopes.MAIL_READ_WRITE Usado para a permissão Mail.ReadWrite (ler, escrever e enviar e-mails)

Importante

Ao instanciar o plugin, a lista de escopos deve corresponder às permissões adicionadas ao projeto.

Esta etapa é essencial para garantir que não hajam problemas de permissão ao usar as APIs.

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

# Instanciando o plugin
service = MS365CredentialsPlugin(
    client_id='<APPLICATION ID>',
    client_secret='<SECRET VALUE>',
)
# Definindo a lista de escopos
scopes_list = [Scopes.BASIC, Scopes.FILES_READ_WRITE_ALL, Scopes.MAIL_READ_WRITE]

service.authenticate(scopes=scopes_list)

Dica

O escopo FILES_READ_WRITE_ALL referente à permissão Files.ReadWrite.All, já é o suficiente para utilizarmos os serviços do OneDrive e Excel.

Os escopos do exemplo acima seriam suficientes para podermos usar os serviços do OneDrive, Excel e Outlook.

Finalizando o fluxo de autenticação

Aviso

Na primeira execução, é necessário que o processo seja feito manualmente para que o arquivo de token seja gerado.

Para as execuções subsequentes, a autenticação é feita automaticamente se o arquivo de token já existir e ainda for válido.

Neste ponto, ao executar o código pela primeira vez, será exibido um link no terminal para ser aberto no navegador.

No navegador aberto, você deve fazer login na conta da Microsoft que está sendo usada, copiar a URL completa que foi gerada e colá-la no terminal onde você executou o código.

A URL gerada será algo assim:

Authentication URL

Após isso, um arquivo chamado o365_token.txt será criado. Este arquivo será utilizado para as próximas autenticações, não sendo necessário realizar este processo novamente até que o token expire.

Usando os serviços do Microsoft 365

Neste ponto, você já tem uma instância do MS365CredentialsPlugin configurada corretamente.

Você pode acessar diretamente as APIs por meio da propriedade ms365_account ou usar essa instância do plugin para instanciar os plugins do OneDrive, Excel e Outlook.