Я экспериментирую с 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