discovery-tecnologia/dsc-mercado-livre

Erros de autenticação

Closed this issue · 4 comments

Olá.
Estou desenvolvendo um hub que terá vários usuários usando a mesma aplicação.
Seguindo o readme, eu precisaria usar o grand type client_credentials , porém recebo a seguinte resposta do ML:
[400] Some errors occurred: {"error_description":"invalid grant_type: client_credentials","error":"unsupported_grant_type","status":400,"cause":[]}

Pelo que eu vi na documentação, os únicos grand type suportados são “authorization_code” e “refresh_token”.

Na versão anterior do hub do meu cliente usando uma SDK antiga do ML os tokens eram guardados em DB. Não está muito claro pra mim como essa aqui funciona.

Obs.: fiz um fork e uma adaptação pra usar com PHP 8+

Olá @luiseduardobraschi
Tudo certo?

Eu não entendi muito bem o seu fluxo... vc mudou a forma de autenticação?

Nosso AuthorizationService envia "authorization_code" no método authorize

'grant_type' => 'authorization_code',

Eles usam o oAuth2 para o fluxo de Autenticação e Autorização do app, vc conseguiu seguir isso?
https://developers.mercadolivre.com.br/pt_br/autenticacao-e-autorizacao

Haa, agora acho que entendi...
A outra forma de fazer a "autenticacao" e pegar o AccessToken, vc precisa marcar seu app com Scope offline access
image

Essa opção era marcada ao criar o aplicativo no Mercado Livre
(Faz tanto tempo que não toco nisso, sinceramente não sei se ainda funciona dessa forma, temos que confirmar na documentação)
https://developers.mercadolivre.com.br/pt_br/autenticacao-e-autorizacao

Confere aqui também Readme docs

Talvez essa Thread ajude em algo também
#30

Boa noite e obrigado pelas respostas. Eu consegui fazer pegar o access token com o code. O que não foi possível foi criar produtos depois disso.

Confere aqui também Readme docs

O app está como offline. É exatamente dessa parte que eu falava:

Outra forma de conseguir o AccessToken é realizando a consulta via client_credentials.

Eu li todo o readme antes de postar a issue. 😌

Talvez essa Thread ajude em algo também #30

É exatamente meu caso. Só passando o access token (persistido em DB) da conta do ME autorizada já é possível cadastrar produtos usando o aplicativo da conta da empresa, o que eu já consegui fazer com outra lib.

Abraço.