Clipper On Line • Ver Tópico - Não retorna o token api nova ifood

Não retorna o token api nova ifood

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 23 Jul 2021 18:11

METHOD Token( ... ) CLASS IFoodClass

   LOCAL cUrl  := "https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token"

   cUrl += "?grantType=client_credentials" + ;
           "&clientId=" + ::cClientId + ;
           "&clientSecret=" + ::cSecret + ;
           "&authorizationCode=" + ;
           "&authorizationCodeVerifier=" + ;
           "&refreshToken="

   ::Post( "POST", cUrl, "" )
   ::aRespToken := ::aJson

   RETURN ::aJson
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 23 Jul 2021 18:12

Atenção ao cliente ID.
Existe mais de um no ifooda.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor ANDRIL » 24 Jul 2021 11:11

Comecei a fazer a integração com eles e parei justamente por que não conseguia obter o token. Tentei de tudo que foi jeito e não deu, algumas vezes conforme o content-type retorna uma string criptografada como a que o colega postou.
Então fiz um teste via php e retornou o token normalmente. O problema parece ser com o content-type 'multipart/form-data' no Harbour.
O código que o Quintas postou, está com parâmetros diferentes do que usei e também outra URL
LOCAL cUrl  := "https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token"

   cUrl += "?grantType=client_credentials" + ;
           "&clientId=" + ::cClientId + ;
           "&clientSecret=" + ::cSecret + ;
           "&authorizationCode=" + ;
           "&authorizationCodeVerifier=" + ;
           "&refreshToken="

O meu
LOCAL cUrl = 'https://pos-api.ifood.com.br/oauth/token'
cUrl +=  "client_id="+client_id+;
             "&client_secret="+client_secret+;
             "&grant_type=password"+;
             "&username="+username+;
             "&password="+password

Como disse com estes parametros e url consegui obter o token via php.

Não gostei deste processo, primeiro obtem o token, este tem uma validade de 1 hora, ainda tem que fazer o polling em até 30 segundos para manter a loja aberta. Isso é muito chato por que no meu caso não integro apenas com o Ifood e acaba escravisando o nosso sistema.
E outra, mexem muito na api, sempre tem campos novos e nova versão obrigando também acompanharmos antes que desativem a versão antiga da api.
Parei por enquanto a integração com eles. Vou acompanhar este tópico.
Clipper 5.2e / Blinker 5.1
Harbour 3.0 e 3.2
------------------------
Visitem http://www.nsi-sp.com
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1218
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 44 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 24 Jul 2021 15:04

ANDRIL escreveu:rimeiro obtem o token, este tem uma validade de 1 hora, ainda tem que fazer o polling em até 30 segundos para manter a loja aberta.


Não, é mais que isso.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 24 Jul 2021 15:10

ifood.png


O Token vale por 22.000 segundos, cerca de 6 horas.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor ANDRIL » 24 Jul 2021 16:54

José creio que use outro endpoint, nos testes que fiz o token era apenas 1 hora (já faz um tempo que não mexo mais nisso). Devem ter alterado a api.
Teria como postar o código que usa para fazer a comunicação, esse seu método post
::Post( "POST", cUrl, "" )

Para comparar com minha chamada, por que com a minha não vai de jeito algum. Vi que vc passa os parametros da url com outra grafia, estão corretos ou depois voce altera para os que pedem na api.
Exemplo: No meu client_id no seu clientId
Clipper 5.2e / Blinker 5.1
Harbour 3.0 e 3.2
------------------------
Visitem http://www.nsi-sp.com
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1218
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 44 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 25 Jul 2021 10:30

ANDRIL escreveu:Exemplo: No meu client_id no seu clientId


cUrl +=  "client_id="+client_id+;


porque diz que no meu tá diferente?
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 25 Jul 2021 10:35

Existe a API pra quando o aplicativo está na WEB, e pra quando o aplicativo está dentro da empresa.
Tá tudo misturado.
Também a senha/clientid pode ser diferente em cada um dos casos.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 25 Jul 2021 11:23

ANDRIL escreveu:Comecei a fazer a integração com eles e parei justamente por que não conseguia obter o token. Tentei de tudo que foi jeito e não deu, algumas vezes conforme o content-type retorna uma string criptografada como a que o colega postou.


Conforme já foi mostrado, você está testando a API velha, e não a nova.
Se não me engano eles iam desativar a API velha pra NOVOS usuários.

METHOD Post( cProtocolo, cUrl, cEnvio ) CLASS IFoodClass

   LOCAL oServer, cItem

   hb_Default( @cProtocolo, "POST" )
   oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP" )
   oServer:Open( cProtocolo, cUrl, .F. )
   oServer:SetRequestHeader( "Accept", "Application/json" )
   oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
   oServer:Send( cEnvio )
   oServer:WaitForResponse( 2000 )
   ::cResposta := oServer:ResponseBody()
   ::aJson     := hb_JsonDecode( ::cResposta )

   RETURN ::aJson
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 11 Ago 2021 09:24

Nenhuma novidade?

Continuo com o retorno "no jwt token" pra pegar lista de pedidos.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor ANDRIL » 11 Ago 2021 16:13

JoséQuintas escreveu:Nenhuma novidade?

O código que postou por último esta igual ao meu, mas mesmo assim, não consigo obter o token pelo sistema.
Não tive tempo ainda para rever estas versões da API deles ou achar o motivo caso não seja isso.
JoséQuintas escreveu:Continuo com o retorno "no jwt token" pra pegar lista de pedidos.

O meu só retorna dados criptografados e não o token.
Clipper 5.2e / Blinker 5.1
Harbour 3.0 e 3.2
------------------------
Visitem http://www.nsi-sp.com
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1218
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 44 vezes

Não retorna o token api nova ifood

Mensagempor JoséQuintas » 11 Ago 2021 17:44

ANDRIL escreveu:O meu só retorna dados criptografados e não o token.


Fui fazer o teste hoje, e pensei que tinha estragado a rotina quando postei ( ou talvez tenha, ao reduzir pra poder postar ).
Aconteceu exatamente isso.

   oServer:SetRequestHeader( "Content-Type", "application/json" )


Esse tem que vir em primeiro lugar, não pode ser em segundo ou terceiro.
Caso contrário.... vém parecendo criptografado.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 17601
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 956 vezes

Não retorna o token api nova ifood

Mensagempor ANDRIL » 11 Ago 2021 17:52

Vou ter que parar um dia só para mexer nesta integração com o IFOOD. Tenho que contatar eles, ve se mudou algo nas urls e recomeçar o processo.
Só não tenho tempo e coragem agora para isto. Como disse, via php obtinha normalmente, mas vc disse que há diferença entre web e desktop pode ser por isso que não consigo via harbour.
Clipper 5.2e / Blinker 5.1
Harbour 3.0 e 3.2
------------------------
Visitem http://www.nsi-sp.com
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1218
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 44 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Ahrefs [Bot] e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro