discovery-tecnologia/dsc-mercado-livre

Erro ao atualizar token

Closed this issue · 6 comments

Estou tentando utilizar o método para capturar as informações dos usuários com um token já expirado, porém estou recebendo erro na resposta:

image

Está sendo retornado um conteúdo em HTML ao invés do JSON. Fiz a atualização do token via Postman utilizando os mesmos dados e tudo ocorreu com sucesso.

image

Ao tentar debugar este problema, aparentemente o body da request não é atribuído ao requestAsync do guzzlehttp

image

Se eu passo no índice do array o body tenho o seguinte retorno do guzzle:

private function refreshAccessToken($refreshToken)
    {
        $uri  = $this->meli->getEnvironment()->getOAuthUri();
        $data = [
            "body" => [
            'grant_type'    => 'refresh_token',
            'client_id'     => $this->meli->getClientId(),
            'client_secret' => $this->meli->getClientSecret(),
            'refresh_token' => $refreshToken]
        ];
        $response = $this->post($uri, $data);

        return \GuzzleHttp\json_decode($response->getBody()->getContents());
    }
InvalidArgumentException
Passing in the "body" request option as an array to send a POST request has been deprecated. Please use the "form_params" request option to send a application/x-www-form-urlencoded request, or the "multipart" request option to send a multipart/form-data request.

Ambiente

PHP 7.2
Laravel 5.7
GuzzleHttp 6.3

Opa,
Valeu @luishscosta, vou verificar o que está acontecendo....

@dilowagner Mandei um PR que corrige essa issue #14

Show de bola @luishscosta , valeu!

Obrigado pela contribuicao!
Vou aproveitar e fixar a versao do Guzzle tambem...

Vou gerar uma nova versao!

Fix
Versao 1.5.3 lancada!

Dá uma força pra nós.... Não consigo evoluir na versão nova do ML do SDK PHP. Já tenho a aplicação criada, baixei o SDK do Git e executei o composer para instalação dos pacotes mas não consigo prosseguir. Preciso de uma tela de login, fazer a comunicação com o OAuth essas paradas. Tens algum exemplo?

Não tenho nenhum exemplo pronto... esses fluxos do OAuth são mais chatos de desenvolver e testar mesmo...
Mas cara, acho que o próprio mercado livre disponibiliza uns diagramas e fluxos de como funciona a aplicação de login.