/** * Make graph api calls * * @param string $path Ads API endpoint * @param string $method Ads API request type * @param array $params Assoc of request parameters * @return FacebookResponse Graph API responses */ public function call($path, $method = self::HTTP_METHOD_GET, array $params = null) { // json_encode all params values that are not primitives if ($params !== null) { foreach ($params as $key => $value) { if (!is_scalar($value) && !is_a($value, '\\CURLFile', true)) { $params[$key] = json_encode($value); } } } $this->logger->debug("HTTP/1.1 {$method} {$path} " . ($params ? json_encode($params) : null)); $client = FacebookRequest::getHttpClientHandler(); FacebookRequest::setHttpClientHandler($this->getHttpClient()); $request = new FacebookRequest($this->session, $method, $path, $params); $response = $request->execute(); FacebookRequest::setHttpClientHandler($client); return $response; }