Аргумент 3, переданный в GuzzleHttp \ Client :: request (), должен быть из массива типов, строка задана

Я экспериментирую с SammyK / LaravelFacebookSdk. Попытка запустить эту строку из примера: $response = Facebook::get('/me?fields=id,name,email', 'user-access-token');

который, в свою очередь, запускает /var/www/vendor/facebook/php-sdk-v4/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php line 61

 public function send($url, $method, $body, array $headers, $timeOut) { $options = [ 'headers' => $headers, 'body' => $body, 'timeout' => $timeOut, 'connect_timeout' => 10, 'verify' => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', ]; $request = $this->guzzleClient->createRequest($method, $url, $options); try { $rawResponse = $this->guzzleClient->send($request); } catch (RequestException $e) { $rawResponse = $e->getResponse(); if ($e->getPrevious() instanceof RingException || !$rawResponse instanceof ResponseInterface) { throw new FacebookSDKException($e->getMessage(), $e->getCode()); } } $rawHeaders = $this->getHeadersAsString($rawResponse); $rawBody = $rawResponse->getBody(); $httpStatusCode = $rawResponse->getStatusCode(); return new GraphRawResponse($rawHeaders, $rawBody, $httpStatusCode); } 

Это вызывает /var/www/vendor/guzzlehttp/guzzle/src/Client.php line 87

 public function __call($method, $args) { if (count($args) < 1) { throw new \InvalidArgumentException('Magic request methods require a URI and optional options array'); } $uri = $args[0]; $opts = isset($args[1]) ? $args[1] : []; return substr($method, -5) === 'Async' ? $this->requestAsync(substr($method, 0, -5), $uri, $opts) : $this->request($method, $uri, $opts); } 

Этот metond интерпретирует вход как array('method' => 'createRequest', 'uri' => 'GET'))

Изменение индекса, по-видимому, исправляет ошибку (хотя другие проблемы возникают)

  $uri = $args[1]; $opts = isset($args[2]) ? $args[2] : []; 

Но поскольку очень редко приходится редактировать другие пакеты, как мне исправить эту ошибку?

У меня такая же проблема. Изменение индексов для меня не сработает, но я нашел обходное решение. Установка расширения php-curl включает весь рабочий процесс через cURL, поэтому проблема исчезла.

Из-за использования SDK 5.x в Facebook используйте жужжащую версию 5. Таким образом, понижающая библиотека жужжания будет обходиться

$ composer требует guzzlehttp / guzzle: ~ 5.0

Используйте new \GuzzleHttp\Psr7\Request($method, $url, $headers, ..) вместо $this->guzzleClient->createRequest