[Resolvido] 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.

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 :wink:

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?

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á!!!

1 Curtida

@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

1 Curtida

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?

1 Curtida

@Danilo_Alves cara assista esse vídeo https://www.youtube.com/watch?v=ENgFRD48dQ8 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!

1 Curtida

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

Vamos tentar resolver… Abs

1 Curtida