PHPackages                             g1k/yii2-direct-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. g1k/yii2-direct-api

AbandonedArchivedYii2-extension[API Development](/categories/api)

g1k/yii2-direct-api
===================

Yii2 Api Direct library

52332PHP

Since Jan 16Pushed 10y ago1 watchersCompare

[ Source](https://github.com/G1K/yii2-direct-api)[ Packagist](https://packagist.org/packages/g1k/yii2-direct-api)[ RSS](/packages/g1k-yii2-direct-api/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

yii2-direct-api
===============

[](#yii2-direct-api)

yii2-direct-api обеспечивает работу с [API Yandex.Direct](http://api.yandex.ru/direct/doc/concepts/About.xml) для фреймворка Yii2. Является форком [YiiDirectApi](https://github.com/iamsalnikov/YiiDirectApi)

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

[](#использование)

Перед использованием данного расширения необходимо [зарегистрировать приложение](https://oauth.yandex.ru/client/new), которое будет работать с API Яндекс.Директа. После регистрации приложению будут присвоены id приложения и пароль приложения.

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

[](#установка-и-настройка-расширения)

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

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

```

или добавить

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

```

в разделе require вашего composer.json файла.

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

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

```

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

[](#получение-токена)

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

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

```

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

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

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

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

```

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

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

### Запросы к API

[](#запросы-к-api)

Запросы к API осуществляются через методы расширения, названия которых соответствуют названиям методов API Яндекс.Директа, но начинаются с маленькой буквы. Например, в API Яндекс.Директа есть метод `GetBanners`; сделать запрос к нему можно через метод расширения `getBanners()`. Каждый метод может принимать массив `$param`, который содержит в себе необходимые данные для выполнения метода. Для некоторых методов этот массив указывать не обязательно. Содержимое `$param` описано для каждого метода API Яндекс.Директа. Рассмотрим запрос к API на примере метода [GetBanners](http://api.yandex.ru/direct/doc/reference/GetBanners.xml):

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

```

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

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

[](#обработка-ошибок)

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

- `getError()` - вернет код ошибки
- `getErrorStr()` - вернет строку ошибки

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

[](#установка-логина-и-токена-при-получении-данных-из-локального-хранилища)

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

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

```

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

[](#поддерживаемые-методы)

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

Буду очень рад дополнениям. Спасибо.

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 52.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12802312?v=4)[mr G1K](/maintainers/G1K)[@G1K](https://github.com/G1K)

---

Top Contributors

[![iamsalnikov](https://avatars.githubusercontent.com/u/3082586?v=4)](https://github.com/iamsalnikov "iamsalnikov (11 commits)")[![G1K](https://avatars.githubusercontent.com/u/12802312?v=4)](https://github.com/G1K "G1K (10 commits)")

### Embed Badge

![Health badge](/badges/g1k-yii2-direct-api/health.svg)

```
[![Health](https://phpackages.com/badges/g1k-yii2-direct-api/health.svg)](https://phpackages.com/packages/g1k-yii2-direct-api)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172437.8k11](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

94452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
