PHPackages                             jumper423/yii2-vk - 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. jumper423/yii2-vk

ActiveProject[API Development](/categories/api)

jumper423/yii2-vk
=================

Расширенная работа с API VK

3.3.4(9y ago)301.6k↓33.3%9[1 issues](https://github.com/jumper423/yii2-vk/issues)Apache License 2.0PHPPHP &gt;=5.4.0

Since Oct 15Pushed 9y ago4 watchersCompare

[ Source](https://github.com/jumper423/yii2-vk)[ Packagist](https://packagist.org/packages/jumper423/yii2-vk)[ Docs](http://infoblog1.ru/learn/cms/yii/rabota-s-api-vk-v-yii2)[ RSS](/packages/jumper423-yii2-vk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (24)Used By (0)

Yii2 VK
=======

[](#yii2-vk)

[![PHP version](https://camo.githubusercontent.com/fa38559e78d381f9c3dbdede4b89628fb993dd3cfb4a4b29e69590b6f5e5c195/68747470733a2f2f62616467652e667572792e696f2f70682f6a756d706572343233253246796969322d766b2e737667)](https://badge.fury.io/ph/jumper423%2Fyii2-vk)

Времнно используйте только вторую версию
========================================

[](#времнно-используйте-только-вторую-версию)

Компонент для расширенной работы с ВК API в YII2. Загрузка изображений, распознавание капчи, постановка очередей и многое другое.

Сайт с подробным описанием [yii2 api vk](http://infoblog1.ru/learn/cms/yii/rabota-s-api-vk-v-yii2)

Особенности
-----------

[](#особенности)

- Задержка выполнения
- Разделины post и get
- Загрузка изображений
- Добавление в очереди
- Запись задач и выполнению их по cron-у
- Интеграция с распознованием капчи
- Запись в атрибуты token-а

Установка
---------

[](#установка)

Предпочтительный способ установить это расширение через [composer](http://getcomposer.org/download/).

Либо запустить

```
php composer.phar require --prefer-dist jumper423/yii2-vk "2.*"

```

или добавить

```
"jumper423/yii2-vk": "2.*"

```

в файл `composer.json`.

Конфигурация
------------

[](#конфигурация)

```
'components' => [
    'vk' => [
        'class' => 'jumper423\VK',
        'clientId' => '11111',
        'clientSecret' => 'n9wsv98svSD867SA7dsda87',
        'delay' => 0.7, // Минимальная задержка между запросами
        'delayExecute' => 120, // Задержка между группами инструкций в очереди
        'limitExecute' => 1, // Количество инструкций на одно выполнении в очереди
        'captcha' => 'captcha', // Компонент по распознованию капчи
    ],
],
'aliases' => [
    '@actions' => '@backend/runtime/cron', // Папка куда будут складироваться очереди для cron-а
],
```

"Расширенная" конфигурация

```
'components' => [
    'captcha' => [
        'class' => 'jumper423\Captcha',
        'pathTmp' => '@imagescache/captcha',
        'apiKey' => '42eab4119020dbc729f657',
    ],
    'authClientCollection' => [
        'class' => 'yii\authclient\Collection',
        'clients' => [
            'vkontakte' => [
                'class' => 'jumper423\VK',
                'clientId' => '11111',
                'clientSecret' => 'n9wsv98svSD867SA7dsda87',
                'delay' => 0.7,
                'delayExecute' => 120,
                'limitExecute' => 1,
                'captcha' => 'captcha',
                'scope' => 'friends,photos,pages,wall,groups,email,stats,ads,offline,notifications', //,messages,nohttps
                'title' => 'ВКонтакте'
            ],
        ],
    ],
],
'aliases' => [
    '@actions' => '@backend/runtime/cron', // Папка куда будут складироваться очереди для cron-а
],
```

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

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

Вызов следовательно

```
/**
* @var jumper423\VK $vk
*/

$vk = Yii::$app->vk;

или

$vk = Yii::$app->authClientCollection->getClient('vkontakte');
```

Создание альбома

```
$response = $vk->post('photos.createAlbum', ['group_id' => $groupId, 'title' => $title, 'upload_by_admins_only' => 1]);
```

Добавление инструкции в очередь

```
foreach ($images as $image) {
    $vk->addAction('photos.edit', ['caption' => $caption, 'owner_id' => $ownerId, 'photo_id' => $image,]);
}
// Добавление в cron
$vk->addActionsInCron('photos.edit');
// Или начать выполнение очереди командой
// $vk->performAnAction();
```

Выполнение cron-а

```
$vk->performAnActionFromCron('photos.edit');
```

Загрузка изображения в альбом пользователя или группы

```
$imageId = $vk->loadImage($imagePath, $albumId, $groupId);
```

Авторизация со всеми правами с помощью selenium
-----------------------------------------------

[](#авторизация-со-всеми-правами-с-помощью-selenium)

```
$data = $webDriver->getData($this->api->getOauthUri());
if (!count($data)) {
    throw new Exception('Ошибка при авторизации');
}
$token = [
    'tokenParamKey' => 'access_token',
    'tokenSecretParamKey' => 'oauth_token_secret',
    'createTimestamp' => time(),
    'params' => $data,
];
$this->vk->vk_id = $data['user_id'];
$this->vk->token = $token;
$this->vk->save();
$this->api->setToken($this->vk->token);
```

```
/**
 * @param $url string
 * @param $recursia bool
 */
public function getData($url, $recursia = true)
{
    $this->driver->get($url);
    $this->driver->findElement(WebDriverBy::name('email'))->sendKeys($this->vkTable->login);
    $this->driver->findElement(WebDriverBy::name('pass'))->sendKeys($this->vkTable->password);
    $this->driver->findElement(WebDriverBy::id('install_allow'))->click();
    sleep(3);
    while ($this->driver->findElements(WebDriverBy::xpath('//input[@name=\'captcha_key\']'))) {
        $this->captcha();
        $this->driver->findElement(WebDriverBy::name('pass'))->sendKeys($this->vkTable->password);
        $this->driver->findElement(WebDriverBy::id('install_allow'))->click();
        sleep(3);
    }
    $this->driver->wait(60, 1000)->until(
        WebDriverExpectedCondition::titleContains('VK | Request Access')
    );
    $this->driver->findElement(WebDriverBy::id('install_allow'))->click();
    $this->driver->wait(60, 1000)->until(
        WebDriverExpectedCondition::titleContains('OAuth Blank')
    );
    $urlCurrent = $this->driver->getCurrentURL();
    $parseUrl = parse_url($urlCurrent);
    if (!isset($parseUrl['fragment']) && $recursia == true) {
        return $this->getData($url, false);
    }
    $query = $parseUrl['fragment'];
    parse_str($query, $data);
    return $data;
}
```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 95.3% 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.

###  Release Activity

Cadence

Every ~23 days

Recently: every ~88 days

Total

23

Last Release

3364d ago

Major Versions

1.2 → 2.02015-10-23

2.1 → 3.02016-02-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/439d5d301333a1fa93f698c0ff8b03b2634db04507148d5d9a692fa1e7605722?d=identicon)[jumper423](/maintainers/jumper423)

---

Top Contributors

[![jumper423](https://avatars.githubusercontent.com/u/12099016?v=4)](https://github.com/jumper423 "jumper423 (41 commits)")[![MasterZero](https://avatars.githubusercontent.com/u/8591768?v=4)](https://github.com/MasterZero "MasterZero (1 commits)")[![nfedoseev](https://avatars.githubusercontent.com/u/4405149?v=4)](https://github.com/nfedoseev "nfedoseev (1 commits)")

---

Tags

apiyii2vkvkontakte

### Embed Badge

![Health badge](/badges/jumper423-yii2-vk/health.svg)

```
[![Health](https://phpackages.com/badges/jumper423-yii2-vk/health.svg)](https://phpackages.com/packages/jumper423-yii2-vk)
```

###  Alternatives

[getjump/vk

Library for work with API Vk.com

19948.5k](/packages/getjump-vk)[dotzero/yii2-amocrm

Расширение для Yii Framework 2 реализующее клиент для работы с API amoCRM

1639.7k](/packages/dotzero-yii2-amocrm)[skeeks/yii2-google-api

Component for work with google api based on google/apiclient

1243.1k1](/packages/skeeks-yii2-google-api)

PHPackages © 2026

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