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:
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.
Ao tentar debugar este problema, aparentemente o body
da request não é atribuído ao requestAsync
do guzzlehttp
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.