Skip to main content

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 😉


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


@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?


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


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



Vamos tentar resolver… Abs


Comente