Я создал собственный провайдер для Laravel Socialite.
Часть аутентификации идет хорошо, пока я не попытаюсь вызвать метод пользователя.
Не уверен, что происходит не так.
Документация по методике в вундерлисте
Мой код:
/**
* {@inheritdoc}
*/
protected function getUserByToken($token)
{
$response = $this->getHttpClient()->get('https://a.wunderlist.com/api/v1/users', [
'X-Access-Token: ' . $token . ' X-Client-ID: ' . $this->clientId
]);
return json_decode($response->getBody(), true);
}
Я получаю следующую ошибку:
InvalidArgumentException in MessageFactory.php line 202:
allow_redirects must be true, false, or array
Я скучаю по вещам в массиве опций?
Jos
На самом деле светский не должен делать что-то подобное. Но вместо этого вы можете использовать Guzzle. На laracasts есть хорошее видео. Просто искать Easy HTTP Requests
, А вот код, который вы можете использовать для жрет:
$client = new \Guzzle\Service\Client('a.wunderlist.com/api/v1/');
$response = $client->get('user')->send();
// If you want this response in array:
$user = $response->json();
Просто читать документы Вот.
При использовании этого с прямым скручиванием нет проблем.
Насколько я вижу, проблема заключается в заголовках, которые я буду анализировать.
Следующее решение — это то, с чем я могу жить, хотя оно и не идеально.
$headers = array();
$headers[] = 'X-Access-Token: ' . $token;
$headers[] = 'X-Client-ID: ' . $this->clientId;
$response = $this->getHttpClient()->get('a.wunderlist.com/api/v1/user', [
'config' => [
'curl' => [
CURLOPT_POST => 0,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false
]
]
]);
return json_decode($response->getBody(), true);