Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/seo/lib/retargeting/services/ |
Upload File : |
<? namespace Bitrix\Seo\Retargeting\Services; use Bitrix\Main\Web\Json; use Bitrix\Seo\Service; use Bitrix\Seo\Retargeting\ProxyRequest; class RequestFacebook extends ProxyRequest { const TYPE_CODE = 'facebook'; const REST_METHOD_PREFIX = 'seo.client.ads.facebook'; protected function directQuery(array $params = array()) { $url = 'https://graph.facebook.com/v8.0/'; $url .= $params['endpoint']; $clientParameters = is_array($params['fields']) ? $params['fields'] : array(); $clientParameters = $clientParameters + array('access_token' => $this->adapter->getToken()); $result = ''; if ($params['method'] == 'GET') { $url .= '?' . http_build_query($clientParameters, "", "&"); $result = $this->client->get($url); } elseif ($params['method'] == 'DELETE') { $result = $this->client->delete($url, $clientParameters, true); } else { $result = $this->client->post($url, $clientParameters, true); } if (!$params['has_pagination']) return $result; try { $partialResult = $result; $result = []; $page = 1; do { $decodedResult = Json::decode($partialResult); $nextPage = ($decodedResult['paging'] && $decodedResult['paging']['next']) ? $decodedResult['paging']['next'] : false; unset($decodedResult['paging']); $result = array_merge_recursive($result, $decodedResult); if ($nextPage) { $this->client->query($params['method'], $nextPage); $partialResult = $this->client->getResult(); $page++; } else { if ($page == 1) // if haven't ['paging']['next'] in original response { return $partialResult; } break; } } while($nextPage && $page < 20); // max 500 items return Json::encode($result); } catch (\Exception $e) { return $result; } } public function getProxyUrl(): string { return $this->getServiceUrl(Service::SERVICE_URL); } }