Não retorna o token api nova ifood

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

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

Código: Selecionar todos

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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

Atenção ao cliente ID.
Existe mais de um no ifooda.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Não retorna o token api nova ifood

Mensagem por ANDRIL »

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

Código: Selecionar todos

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

Código: Selecionar todos

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.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

ifood.png
O Token vale por 22.000 segundos, cerca de 6 horas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Não retorna o token api nova ifood

Mensagem por ANDRIL »

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

Código: Selecionar todos

::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.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

ANDRIL escreveu:Exemplo: No meu client_id no seu clientId

Código: Selecionar todos

cUrl +=  "client_id="+client_id+;
porque diz que no meu tá diferente?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

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.

Código: Selecionar todos

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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

Nenhuma novidade?

Continuo com o retorno "no jwt token" pra pegar lista de pedidos.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Não retorna o token api nova ifood

Mensagem por ANDRIL »

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.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

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.

Código: Selecionar todos

   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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Não retorna o token api nova ifood

Mensagem por ANDRIL »

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.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Não retorna o token api nova ifood

Mensagem por JoséQuintas »

Desvendado o mistério.

NÃO USO IFOOD, estou apenas ajudando outro programador.

Como faz mais de um ano que fiz da outra vez, tinha esquecido tudo.

É só fazer aqueles testes do site do ifood, que lá mesmo já mostra como fazendo usando libcurl.

Só adaptar pra MSXML e pronto.

Agora tudo funciona.

Nota: Os porr. do suporte não sabem dizer isso, só sabem dizer pra usar o postman.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
RCINF
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 01 Set 2009 13:23
Localização: Vila Velha-ES

Não retorna o token api nova ifood

Mensagem por RCINF »

Opa, bom dia...

Tambem estou na luta aqui com esse Ifood@, é o mesmo que conversar com computador, acho que nenhum operador deles entende o que se fala, meu projeto está parado, ta fácil nao...

Só quero as vendas (pedidos), mais nada, só preciso do Link e as Chaves, já rodamos com outras eCommerce, tudo 100%, mas....

Aproveitando, estamos firmes nos Harbour, Wvw, Hwgui, etc... a todo vapor...

Att
Responder