Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 2
Яндекс API

API яндекс директ: Миграция приложения v4 на v5

08.07.2016, 13:27. Показов 2971. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Имеется скрипт, который работает с рекламными компаниями в яндекс директ. Скрипт был написан сторонним программистом 3 года назад и сейчас связаться с ним не получается, поэтому придется как-то решать задачу своими силами. Суть - скрипт использует методы API 4 версии, отключение которой обещают максимум через месяц. Поэтому нужно переходить на API 5 версии. Самому вроде удалось обновить методы с API 4 до API 4 Live, но там все действия идентичны, а вот с переходом на 5 версию большие проблемы. Сам я в PHP новичок, поэтому очень надеюсь на Вашу помощь. Взаимодействие с яндекс API осуществляется 3 файлами: 1 файл конфигурации, 2 насколько я понимаю обработчик, 3 файл, в котором описаны все функции работы и т.д. Выкладывать код всех 3 файлов смысла не вижу, так как страница будет огромной. Для примера:

API 4 версии использует вот этот файл:
PHP
1
define('YANDEXAPI','https://soap.direct.yandex.ru/json-api/v4/');
в другом файле происходит обработка данного файла:
PHP
1
2
3
4
5
6
7
8
9
 $opts = array(
 'http'=>array(
 'method'=>"POST",
 'content'=>$j_request,
 )
 );
 $context = stream_context_create($opts);
 $result = file_get_contents(YANDEXAPI, 0, $context);
 $res = json_decode($result,true);
Если заменить файл API 4 на API 5: вот на такой
PHP
1
define('YANDEXAPI','https://api.direct.yandex.com/json/v5/ads');
То обработчик перестает работать и начинает ругаться на эти строчки

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 foreach($campains['data'] as $campain){
 if(stripos($campain['Name'],CAMPAIN_NAMEMASK)!==false){
 $baners = do_yandex_request('GetBanners',array(
 'CampaignIDS' => array($campain['CampaignID']),
 // 'Filter' => array(
 // 'StatusPhoneModerate' => array('Yes'),
 // 'StatusBannerModerate' => array('Yes'),
 // 'StatusPhrasesModerate' => array('Yes'),
 // 'StatusActivating' => array('Yes'),
 // 'StatusShow' => array('Yes'),
 // 'IsActive' => array('Yes'),
 // 'StatusArchive' => array('No')
 // ),
 'GetPhrases' => 'WithPrices'
 ),false);
Мол неправильный аргумент foreach($campains['data'] as $campain){

Та же ситуация здесь:

PHP
1
2
3
4
foreach($campains['data'] as $campain){
 if(stripos($campain['Name'],CAMPAIN_NAMEMASK)!==false){
 $c++;
 }

Происходит это скорее всего из-за несоответсвия методов, в API 4 метод GetBanners,
а в API 5 Сервис Campaigns, метод get

Менял GetBanners на get, делу это не помогло. Нужно еще что-то подключать.

Начать, наверное, нужно с решения этих ошибок. При необходимости могу отправить все три файла для детального ознакомления. Заранее благодарен, очень надеюсь на Вашу помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2016, 13:27
Ответы с готовыми решениями:

Яндекс директ api: Сбор ключевых слов, у которых "% отказов" больше или соответствует заданному
Здравствуйте, задача такая: собирать ключевые слова у которых "% отказов" больше или соответствует заданному. Выбрал такой...

Чем отличаются Яндекс.директ и Вордстат.Яндекс
Чем отличаются Яндекс.директ и Вордстат.Яндекс? Чем лучше воспользоваться при составлении семантического ядра?

Миграция на Dropbox API v2
С 28.06.2017 Dropbox API v1 больше не будет работать. В консоли разработчика есть инструкция по миграцию на API v2 . Я не могу понять,...

4
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
13.07.2016, 23:00
Napst3r,
Есть же официальный документ по миграции на 5 версию https://tech.yandex.ru/direct/... s-docpage/
0
0 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 16
24.08.2016, 21:17
А пример реализации авторизации с Директом 5 версии не у кого не завалялся, а то я с КЮрл не дружу. Спасибо!
0
0 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 16
27.08.2016, 13:38
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
            $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',
            
            );
Заработало!!!
0
1 / 1 / 0
Регистрация: 19.08.2016
Сообщений: 13
29.08.2016, 04:34
Добрый день, okyrok!
А подскажите, как дальше?
Я пишу
PHP
1
2
3
4
$opts = array(
    'http' => array($HEADER,$REQUEST));
$context = stream_context_create($opts);
$result = file_get_contents($url, 0, $context);
и получаю снова ошибку 53 - Token not entered

Добавлено через 6 минут
Извините, дошло. Вот тупой-то я.
PHP
1
2
3
4
5
6
7
$opts = array('http' =>
      array(
      'method'  => 'POST',
      'header'  => $HEADER,
      'content' => $REQUEST
      ) 
    );
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2016, 04:34
Помогаю со студенческими работами здесь

Яндекс.Директ
по Яндекс.Директ кликнул на сайт, явно существующий с 8-го октября увидел следущее вопрос: возможно ли это только за счет...

Директ Яндекс
Возникает вопрос по показателям директа в Яше!!! По слову заработок запросов 35000, даже если это поделить на 2, как некотоорые говорят,...

Яндекс директ
Все доброе время суток! Народ подскажите кто знает. На днях случайно удалили почту на яндексе, под логином от почты у нас была...

Яндекс директ
Добрый день! Ребят,помогите с модераторами найти общий язык, плиииз... Добавлено через 2 часа 12 минут Никто помочь не...

Яндекс Директ
Никогда не размещал директ на сайте, хочется узнать сколько % директ будет выплачивать от стоимости 1 перехода (средняя цена размещения и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru