SOAP (класс NuSOAP)

Примеры взаимодействия с API Яндекс Директа на PHP с использованием набора классов NuSOAP.

Получение сведений о клиенте

Пример демонстрирует вызов метода GetClientInfo (Live).

<?php
require_once('NuSOAP-Lib/nusoap.php');

$wsdlurl = 'https://api.direct.yandex.ru/live/v4/wsdl/';
$token = 'xxxxxx899f484ce7b0dc709fcbb36aed';
$locale = 'ru';

// Инициализация NuSOAP-клиента
$client = new nusoap_client($wsdlurl, 'wsdl');

# Параметры NuSOAP-клиента
$client->authtype = 'basic';
$client->decode_utf8 = 0;
$client->soap_defencoding = 'UTF-8';

// Формирование заголовков SOAP-запроса
$client->setHeaders("<token>$token</token><locale>$locale</locale>");

// Выполнение запроса к серверу API Директа
$result = $client->call('GetClientInfo', array());

// Вывод запроса и ответа
echo "Запрос:<pre>".htmlspecialchars($client->request, ENT_QUOTES)."</pre>";
echo "Ответ:<pre>".htmlspecialchars($client->response, ENT_QUOTES)."</pre>";

/*
// Вывод отладочной информации 
echo '<hr><pre>'.htmlspecialchars($client->debug_str, ENT_QUOTES).'</pre>';
*/
?>

Создание кампании

Пример демонстрирует вызов метода CreateOrUpdateCampaign (Live).

<?php
require_once('NuSOAP-Lib/nusoap.php');

$wsdlurl = 'https://api.direct.yandex.ru/live/v4/wsdl/';
$token = 'xxxxxx899f484ce7b0dc709fcbb36aed';
$locale = 'ru';
$login = 'campaign-owner-yandex-login';

// Инициализация NuSOAP-клиента
$client = new nusoap_client($wsdlurl, 'wsdl');

# Параметры NuSOAP-клиента
$client->authtype = 'basic';
$client->decode_utf8 = 0;
$client->soap_defencoding = 'UTF-8';

// Формирование заголовков SOAP-запроса
$client->setHeaders("<token>$token</token><locale>$locale</locale>");

// Входные данные запроса
$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->call('CreateOrUpdateCampaign', array("params" => $params));

// Вывод запроса и ответа
echo "Запрос:<pre>".htmlspecialchars($client->request, ENT_QUOTES)."</pre>";
echo "Ответ:<pre>".htmlspecialchars($client->response, ENT_QUOTES)."</pre>";

/*
// Вывод отладочной информации 
echo '<hr><pre>'.htmlspecialchars($client->debug_str, ENT_QUOTES).'</pre>';
*/
?>