Aautenticação OAuth2 pra uso de APIs autenticadas


Não estou conseguindo autenticar no google para uso das APIs autenticadas, como a do Gmail por exemplo.

Alguém tem algum exemplo bem sucedido de requisição de autenticação no cliente do bot para isso?


Ao tentar utilizar a API do gmail, acontece o seguinte:


“code”: 401

“message”: “Login Required”


Pelo que pesquisei, eu preciso fazer uma autenticação OAuth2 e pegar o Authorization code retornado para inserir no cabeçalho da requisição do Gmail.


17 comentários

Neste caso você precisará negociar a autenticação OAuth através de um Webview, coletar o token do cliente e utilizá-lo durante as requisições do Builder.


Ainda não tenho um exemplo pronto que faça exatamente isso. Vamos providenciar em breve 😉

Tudo bem, eu até consegui montar uma url para chamada da autenticação, mas isso não devia estar visível para o usuário.

Tinha que ser uma tarefa feita por baixo dos panos, para que permita o acesso a todas as APIs autenticadas.

Ou seja, não devia ter uma interface web pois o bot é quem deveria fazer este login e pegar a autorização.

Então é mais simples ainda.


Eu havia imaginado que você precisaria ter acesso à algum token específico de um cliente.

Neste caso, basta gerar o token da sua aplicação, manualmente (uma única vez), e guardar o Token como uma configuração do builder.

Eu já tentei de tudo no meu POST em

https://www.googleapis.com/gmail/v1/users/jhoni.desbravador%40gmail.com/messages/send?key=AIzaSyAf7y1-AYamXOJ_6XEJsmfsS6pfpBkNib0


Mas retorna


{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}

Consegui, faltava configurar direito o acesso OAuth para acesso do cliente…



Agora só falta descobrir como gerar um token sem tempo de expiração, ou seja permanente.

Bom Dia Jhoni_Desb1d, tudo bem ? sou leigo no assunto do Bot do Blip, sem querer ser inconveniente e “Perguntador” Qual o uso patico da Aunticação OAuth2 ? tem um exemplo já finalizado por você ?

Daniel-Gomes, tem APIs que só funcionam se forem autenticadas. É o caso da API do Gmail.

Como o envio de e-mails pelo bot é bem limitado - primeiro por causa do domínio que não é próprio e segundo por causa do título que não pode ser customizado, sem falar no conteúdo que tem que ser texto - então estou tentando compor e enviar e-mails usando o serviço do gmail.

Entendi , Obrigado pela explicação.

Sabe me indicar como fazer isso sem sofrer muito?

Como ter acesso ao token para chamar uma API do Blip?

https://help.blip.ai/hc/pt-br/articles/360008085571-Como-encontrar-a-API-KEY-do-meu-bot-

Olá pessoal! Sou novo por aqui e estou precisando de uma ajuda exatamente com referência a autorização do OAuth.


Seguindo passo a passo as sugestões do caro colega Igor Junio em videos sobre a questão, configurei uma REQUISIÇÃO DE SAÍDA no MÉTODO POST com o objetivo de preencher uma planilha do Google Sheets.


//sheets.googleapis.com/v4/spreadsheets/1ngM0ZSwMTdIswmn5kcjULnltR92235WHtkN7PskNllg/values/teste!A1:append?insertDataOption=INSERT_ROWSresponseDateTimeRenderOption=FORMATTED_STRINGvalueInputOption=USER_ENTERED


CABEÇALHO

KEY=Authorization VALUE=bearer {{oauth@access_token}}


CORPO

{

“values”: [

[

“conteudo”

]

]

}


Na página da documentação do Google Sheets teste e deu certo preenchendo a planilha.


Além disso fiz todo o processo de configuração do refresh do OAuth da seguinte maneira:

AÇÃO DE SAÍDA

REQUISIÇÃO HTTP

MÉTODO= POST

URL= https: // accounts.google. com/o/oauth2/token

CABEÇALHO

KEY=Authorization

VALUE=bearer {{oauth@access_token}}


CORPO

{

“client_secret”: “inseri o código”,

“grant_type”: “refresh_token”,

“refresh_token”: “inseri o código”,

“client_id”: “inseri o código”

}

Retornou da seguinte maneira:


{

“access_token”: “ya29.GltxB3PStp6mJyPvJ6Kx2bB1OSo5n7jINFUgJuXqSd-pYzJ2ResxUL34e1w2zEq86XcXkVc6vXvGR1X-bvokWAiJr0kjRdlGI8KouyJlr9GnjBUhO8H28P0ra3W-”,

“expires_in”: 3600,

“scope”: ,

“token_type”: “Bearer”

}


Porém, não consigo fazer a integração. Quando executo o bot recebo a seguinte resposta:


{

“error”: {

“code”: 401,

“message”: “Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See http: // developers.google.com/identity/sign-in/web/devconsole-project.”,

“status”: “UNAUTHENTICATED”

}

}


Onde posso estar errando??? Fiz o processo várias vezes e nada!!! Se alguém puder me ajudar, agradeço desde já!!!

Reputação 5

@Danilo_Alves pode ser que você está fazendo a autenticação depois da requisição de envio para o Google Sheets.


O primeiro bloco tem que conter a requisição de access_token e no próximo bloco você faz o envio para o Google Sheets.


Caso você esteja realizando as 2 requisições em um mesmo bloco, certifique que a requisição para gerar o access_token esteja em primeiro.


Outra coisa é que certifique que se as 2 estiver no mesmo bloco, a requisição OAuth esteja em Ações de Entrada, e o requisição do Post esteja em Ações de Saída.


Qualquer coisa me adiciona no skype igor.junio2.

https://join.skype.com/invite/AjelnW9FT03S

Estou fazendo nesta sequência mesmo, primeiro o token e depois a requisição. Inclusive tentei com o token na configuração, tentei com ele no mesmo bloco e agora com o token no bloco inicial do fluxo.


Por acaso não foi realizada alguma outra configuração dentro do OAuth ou na plataforma do Blip?

Reputação 5

@Danilo_Alves cara assista esse vídeo Integrando API OAuth 2.0 permanente - Blip (Chatbot) - YouTube e veja se não está pulando nenhum passo.

Consegui. Já tinha visto o seu vídeo anteriormente. Mas, resolvi seguir passo a passo e encontrei o erro. Por causa de um “R” estava dando tudo errado. Ao invés de colocar BEARER estava colocando BEARE.


Valeu muito pela atenção… Grande abraço!

Reputação 5

Ótimo que deu certo @Danilo_Alves qualquer dúvida ou dificuldade compartilha com a gente.


Vamos tentar resolver… Abs

Comente