SOAP (класс SOAPClient)
Взаимодействие с API Яндекс Директа на PHP с использованием класса SOAPClient.
Получение сведений о клиенте
Пример демонстрирует вызов метода GetClientInfo (Live).
<?php
ini_set("soap.wsdl_cache_enabled", "0");
$wsdlurl = 'https://api.direct.yandex.ru/live/v4/wsdl/';
$token = 'xxxxxx899f484ce7b0dc709fcbb36aed';
$locale = 'ru';
// Инициализация SOAP-клиента
$client = new SoapClient($wsdlurl,
array(
'trace'=> true,
'exceptions' => false,
'encoding' => 'UTF-8'
)
);
// Формирование заголовков SOAP-запроса
$client->__setSoapHeaders(
array(
new SoapHeader('API', 'token', $token, false),
new SoapHeader('API', 'locale', $locale, false)
)
);
// Выполнение запроса к серверу API Директа
$result = $client->GetClientInfo();
// Вывод запроса и ответа
echo "Запрос:<pre>".htmlspecialchars($client->__getLastRequest()) ."</pre>";
echo "Ответ:<pre>".htmlspecialchars($client->__getLastResponse())."</pre>";
/*
// Вывод отладочной информации в случае возникновения ошибки
if (is_soap_fault($result)) { echo("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring}, detail: {$result->detail})"); }
*/
?>
Создание кампании
Пример демонстрирует вызов метода CreateOrUpdateCampaign (Live).
<?php
ini_set("soap.wsdl_cache_enabled", "0");
$wsdlurl = 'https://api.direct.yandex.ru/live/v4/wsdl/';
$token = 'xxxxxx899f484ce7b0dc709fcbb36aed';
$locale = 'ru';
$login = 'campaign-owner-yandex-login';
// Инициализация SOAP-клиента
$client = new SoapClient($wsdlurl,
array(
'trace'=> true,
'exceptions' => false,
'encoding' => 'UTF-8'
)
);
// Формирование заголовков SOAP-запроса
$client->__setSoapHeaders(
array(
new SoapHeader('API', 'token', $token, false),
new SoapHeader('API', 'locale', $locale, false)
)
);
// Входные данные запроса
$params = array(
'Login' => $login,
'CampaignID' => 0,
'Name' => 'New Campaign',
'FIO' => 'Иван Иванов',
'Strategy' => array(
'StrategyName' => 'HighestPosition'
),
'EmailNotification' => array(
'MoneyWarningValue' => 20,
'WarnPlaceInterval' => 60,
'Email' => 'agrom@yandex.ru'
)
);
// Выполнение запроса к серверу API Директа
$result = $client->CreateOrUpdateCampaign($params);
// Вывод запроса и ответа
echo "Запрос:<pre>".htmlspecialchars($client->__getLastRequest()) ."</pre>";
echo "Ответ:<pre>".htmlspecialchars($client->__getLastResponse())."</pre>";
/*
// Вывод отладочной информации в случае возникновения ошибки
if (is_soap_fault($result)) { echo("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring}, detail: {$result->detail})"); }
*/
?>