• 1
Thiago Freitas

Atualizar Token gera erro 400

Question

estou usando a API para atualizar o token do lado do servidor, de uns dias atrás até agora começou a retornar 400 em alguns casos:

url := fmt.Sprintf("https://api.mercadolibre.com/oauth/token?grant_type=refresh_token&client_id=%s&client_secret=%s&refresh_token=%s",
   APPKEY,
   APPTOKEN,
   MlRefreshToken)

A url esta exata, sempre funcionou (POST), pois tenho 5 contas para atualizar o Token, e nem sempre o erro ocorre. Mas o retorno constantemente tem sido:

{
    "message": "Client id parameter does not match.",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

A unica coisa que mudei foi a arquitetura. Antes sempre que eu recebia uma notificação de qualquer coisa eu atualizava primeiro o Token para depois realizar a consulta, agora eu atualizo o Token em um cron a cada 2 horas, ou seja, diminui drasticamente o numero de requisições na API do mercadolivre.

Alguem já passou por isso?

Share this post


Link to post
Share on other sites

13 answers to this question

Recommended Posts

  • 0
3 hours ago, Thiago Freitas said:

Vejam o problema nitidamente

image.thumb.png.2e61e55dee465649c0a72e832da7a30b.png

Agora com o mesmo client id:

image.thumb.png.557fadc3a0e2571c32a5e59c0ce7faf8.png

 Muito estranho. Será um bug no ML?

Às vezes a API dá erro sim, mas lembre-se que após renovar o token, na próxima chamada de renovação deve usar o novo refresh token. Confirme que está fazendo isso. Outra coisa é que não precisa renovar a cada 2 horas nem ter um CRON só pra isso. Guarde a validade do TOKEN e considere renovar apenas se estiver vencido (é bom considerar alguns minutos antes, para evitar problemas de sincronismo de data/hora entre o seu servidor e o do ML).

Share this post


Link to post
Share on other sites
  • 0

Migramos o produto para a versão 2.0, com outra linguagem, a migração é por etapas, não podemos desligar a chave da versão 1.0, então estávamos fazendo parcial, embora eram linguagens diferentes, o banco ainda é o mesmo, ou seja compartilhado. Nós deixamos claro na empresa de que as pessoas que entrarem no 2.0 não poderia usar o 1.0. O pessoal entrava no 2.0, gerava o Token e o RefreshToken e depois entrava no 1.0, onde gerava novamente o Token e o Refresh dele, porem não apps diferentes no MercadoLivre, ai tentávamos rodar rotinas no 2.0 com o Token gerado no 1.0 (outro app). Bugava geral.  

Share this post


Link to post
Share on other sites
  • 0
On 01/05/2018 at 5:16 PM, Thiago Freitas said:

as pessoas que entrarem no 2.0 não poderia usar o 1.0

coloque um bloqueio no seu sistema, coisa simples. Entrou no 2.0, já tem o numero da versão utilizada, não pode usar uma inferior.
Isto nem é caso da API...

Share this post


Link to post
Share on other sites
  • 0
8 hours ago, rodrigojob said:

coloque um bloqueio no seu sistema, coisa simples. Entrou no 2.0, já tem o numero da versão utilizada, não pode usar uma inferior.
Isto nem é caso da API...

Não é tão simples assim, como eu disse no inicio do texto, estamos migrando o sistema em partes, e existem areas da empresa que ainda não podem migrar devido a falta de rotinas, já outras areas podem migrar perfeitamente. Esse problema é muito mais um processo do que uma trava. No final nossos queridos usuarios são os melhores QA's da galaxia. Não adianta fazer reunião, mandar e-mail, explicar. Nossos amados usuarios são assim: Se existe 2 bugs no sistema o usuario encontra 3.

Share this post


Link to post
Share on other sites
  • 0
On 4/30/2018 at 4:45 PM, Thiago Freitas said:

Achei onde estava o BUG. Obrigado pessoal.

achou a resposta mostra para o pessoal, vai que alguém precisa dela!
Lembre-se que você perguntou e algumas pessoas dispuseram do seu tempo para tentar te ajudar. É agora que você deve ceder parte do seu tempo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now