2015-05-15 4 views
3

Я создал пользовательский провайдер для Laravel Socialite. Часть аутентификации идет хорошо, пока я не попытаюсь вызвать метод пользователя.Laravel 5.0 Socialite with Wunderlist

Не уверен, что случилось. Method documentation at wunderlist

Мой код:

/** 
* {@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

ответ

0

На самом деле светская не должен делать что-то вроде этого. Но вместо этого вы можете использовать Guzzle. В ларакастах есть хорошее видео. Просто найдите 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(); 

Просто read the docs здесь.

+0

Привет @Aditya Гири, Спасибо. Я должен сказать, что Социалит использует Гузл. Вместо этого я попытаюсь использовать его. Спасибо. –

+0

ОК. Хорошо. @JosKoomen –

+1

При использовании Guzzle напрямую я получаю ту же ошибку. Я добавил дамп стека: https://dl.dropboxusercontent.com/u/10376551/stack.txt –

0

При использовании этого с прямолинейным локоном нет проблем. Насколько я вижу, проблема заключается в заголовках, которые я буду разбирать.

Следующее решение - это то, с чем я могу жить, хотя это не идеально.

$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); 
Смежные вопросы