2017 © Pedro Peláez
 

yii2-extension yii2-direct-api

Yii2 Api Direct library

image

g1k/yii2-direct-api

Yii2 Api Direct library

  • Saturday, January 16, 2016
  • by G1K
  • Repository
  • 1 Watchers
  • 2 Stars
  • 123 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 17 Forks
  • 0 Open issues
  • 1 Versions
  • 3 % Grown

The README.md

yii2-direct-api

yii2-direct-api обеспечивает работу с API Yandex.Direct для фреймворка Yii2. Является форком [YiiDirectApi][4], (*1)

Использование

Перед использованием данного расширения необходимо зарегистрировать приложение, которое будет работать с API Яндекс.Директа. После регистрации приложению будут присвоены id приложения и пароль приложения., (*2)

Установка и настройка расширения

Предпочтительный способ установить это расширение через composer., (*3)

$ php composer.phar require g1k/yii2-direct-api "dev-master"

или добавить, (*4)

"g1k/yii2-direct-api": "dev-master"

в разделе require вашего composer.json файла., (*5)

В конфиге приложения добавьте компонент:, (*6)

'components'=>[
        ...
        'direct' => [
                'class'         => 'g1k\direct\DirectApi',
                'clientId'      => 'ид приложения',
                'clientSecret'  => 'секретный ключ приложения',
                'useSandbox'    => true, # использовать ли песочницу. по умолчанию false — использует боевое API
                'locale'        => 'ru', # на каком языке отдавать ответы. Если не указан, то используется язык приложения
                'responseType'  => 'code', # Тип ответа от яндекса при получении токена (code, token). Если не указан, то используется code. 
        ]
],

Получение токена

Для получения токена необходимо отправить пользователя на страницу Яндекс.Директа. Ссылку на эту страницу можно получить следующим образом:, (*7)

$link = Yii::$app->direct->getAuthorizeUrl();

В метод getAuthorizeUrl() можно передать также параметр $state, который будет возвращен в неизменном виде от Яндекса., (*8)

После того, как пользователь перейдет по сгенерированной ссылке и разрешит доступ, яндекс вернет на url, который был указан при регистрации приложения, код (и если был указан параметр state, то его в неизменном виде)., (*9)

Для того, чтобы получить токен, нужно передать параметр code, который вернет Яндекс, методу getDirectToken($code), (*10)

$token = Yii::$app->direct->getDirectToken($code);

Данный метод вернет false в случае ошибки и строку с токеном, в случае успешного получения. Об обработке ошибок будет рассказано ниже., (*11)

При получении токена через этот метод расширение его запомнит. Если приложение будет пользоваться доступом к данным Яндекс.Директа определенного аккаунта, тогда токен лучше сохранить в какое-нибудь постоянное хранилище., (*12)

Запросы к API

Запросы к API осуществляются через методы расширения, названия которых соответствуют названиям методов API Яндекс.Директа, но начинаются с маленькой буквы. Например, в API Яндекс.Директа есть метод GetBanners; сделать запрос к нему можно через метод расширения getBanners(). Каждый метод может принимать массив $param, который содержит в себе необходимые данные для выполнения метода. Для некоторых методов этот массив указывать не обязательно. Содержимое $param описано для каждого метода API Яндекс.Директа. Рассмотрим запрос к API на примере метода GetBanners:, (*13)

$res = Yii::$app->direct->getBanners(array(
    'CampaignIDS' => array(100, 101, 123),
    'GetPhrases' => 'WithPrices'
));

Каждый метод возвращает ответ от Яндекса в случае успеха, или false в том случае, если произошла ошибка., (*14)

Обработка ошибок

Для того, чтобы получить информацию об ошибке, можно воспользоваться методами:, (*15)

  • getError() - вернет код ошибки, (*16)

  • getErrorStr() - вернет строку ошибки, (*17)

Установка логина и токена, при получении данных из локального хранилища

Если мы храним токены и логины у себя, тогда перед работой их нужно передать расширению, чтобы можно было осуществлять запросы к API. Для этого есть методы setLogin и setToken., (*18)

Yii::$app->direct->setLogin('login')->setToken('token');

Поддерживаемые методы

Сейчас расширение не дает доступ ко всем методам API Яднекс.Директа. Но реализовано большинство. Не реализованы методы из группы "Метки объявлений", "Изображения в объявлениях", "Ретаргетинг" и "Финансовые операции"., (*19)

Буду очень рад дополнениям. Спасибо., (*20)

The Versions

16/01 2016

dev-master

9999999-dev

Yii2 Api Direct library

  Sources   Download

The Requires