API Яндекс.Директ 5 версии

T
На сайте с 02.02.2015
Offline
35
5204

Всем привет.

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

Делаю все как в доках описано


...
$request = array(
'method'=> $method,
'param'=> $params,
);
$request = json_encode($request);
$opts = array(
'http'=>array(
'method'=>"POST",
'header'=>'POST /json/v5/keywords/ HTTP/1.1'.
'Host: api.direct.yandex.com'.
'Authorization: хххххххOHqtwdjHQnSAbv5y1aUOMg'.
'Accept-Language: ru'.
'Client-Login: логин'.
'Content-Type: application/json; charset=utf-8',
'content'=>$request,
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://api.direct.yandex.com/json/v5/keywords', 0, $context);
print_r($result);
...

Получаю ошибку что токен неуказан.

Но при этом если исказить формат токена, написав к примеру какое то слово перед самим токеном, он возмущается что неверный формат токена. Токен действительный, он работает в скрипте для четвертой версии.

T
На сайте с 23.03.2008
Offline
71
#1

Значением этого заголовка должна быть строка вида "Bearer 0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f". Использование слова "Bearer" является обязательным.

Дмитрий Удимов
На сайте с 05.05.2010
Offline
274
#2

Лучше пока не использовать API 5 Директа. API 5 отдаёт неправильные ставки и они отличаются от API 4. Яндекс знает об этой проблеме, но решает 27 апреля и решить пока не может. Пруф http://d.pr/i/13kLs

Топвизор — аккредитованный регистратор доменов .ru и .рф (https://topvisor.com/ru/domain-registration/) — честная цена 299 руб. за регистрацию и продление.
T
На сайте с 23.03.2008
Offline
71
#3
Ditmar:
Лучше пока не использовать API 5 Директа. API 5 отдаёт неправильные ставки и они отличаются от API 4. Яндекс знает об этой проблеме, но решает 27 апреля и решить пока не может. Пруф http://d.pr/i/13kLs

А не в курсе, когда они хотят полностью перевести всех на API5 и отключить API4?

Дмитрий Удимов
На сайте с 05.05.2010
Offline
274
#4
turururu:
А не в курсе, когда они хотят полностью перевести всех на API5 и отключить API4?

Нам приходило письмо о том, что рекомендуется всем в июне перейти на API 5, так как API 4 будет закрываться. Но сроков озвучено не было.

T
На сайте с 23.03.2008
Offline
71
#5
Ditmar:
Нам приходило письмо о том, что рекомендуется всем в июне перейти на API 5, так как API 4 будет закрываться. Но сроков озвучено не было.

Да, письмо я видел, но после этого - полная тишина.

O
На сайте с 06.10.2014
Offline
22
#6

$opts = array( 

'http'=>array(
'method'=>"POST",
'header'=>'POST /json/v5/keywords/ HTTP/1.1'.
'Bearer: 0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f'.
'Host: api.direct.yandex.com'.
'Authorization: AQ_oMg0AAvq-Nx7NaOv3QYy4Fx88qcWEvA'.
'Accept-Language: ru'.
'Client-Login: otzyvy-formulaintex'.
'Content-Type: application/json; charset=utf-8',
'content'=>$request,
)
);

По вышепредложенному совету добавил "BEARER", но судя потому что пишу здесь - неправильно добавил!

Не понимаю почему для 5 версии пример дан в отрыве от ПШП. Мне ж его 1 раз для всего проекта только-то и использовать)

O
На сайте с 06.10.2014
Offline
22
#7

			$url='https://api.direct.yandex.com/json/v5/campaigns';//ссылка на API

$REQUEST=array(
'method'=>'get',
"params" => array(
"SelectionCriteria" => array("States" => array("ON") ),
"FieldNames" => array(
"Name",
"DailyBudget",
"Funds",
"Statistics",
"Type"
),
"TextCampaignFieldNames" => array(
"CounterIds",
"RelevantKeywords",
"Settings",
"BiddingStrategy"
)
)


);

$HEADER=array(

'Accept-Language: ru',
'Content-Type: application/json; charset=utf-8',
'Authorization: Bearer XXXXXXXXXX',
'Client-Login: XXXXXXXXXXX',

);

Заработало!!!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий