PHPackages                             programmis/php-vk-api-sdk - 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. programmis/php-vk-api-sdk

ActiveLibrary[API Development](/categories/api)

programmis/php-vk-api-sdk
=========================

Lib for Vk Api

2.0.48(9y ago)121.6k3MITPHPPHP &gt;=5.3.0

Since Jul 14Pushed 9y ago7 watchersCompare

[ Source](https://github.com/programmis/php-vk-api-sdk)[ Packagist](https://packagist.org/packages/programmis/php-vk-api-sdk)[ Docs](https://github.com/programmis/php-vk-api-sdk)[ RSS](/packages/programmis-php-vk-api-sdk/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (11)Versions (56)Used By (0)

### Supported:

[](#supported)

Account, Ads, Apps, Audio, Auth, Board, Database, Docs, Fave, Friends, Gifts, Groups, Leads, Likes, Market, Messages, Newsfeed, Notes, Notifications, Orders, Pages, Photos, Places, Polls, Search, Secure, Stats, Status, Storage, Users, Utils, Video, Wall, Widgets ### How to install:

[](#how-to-install)

**1) Download [composer](https://getcomposer.org/download/) :**

```
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
```

**2) Install SDK:**

```
php composer.phar require programmis/php-vk-api-sdk
```

**3) Get token vkontakte:**

```
http://oauth.vk.com/authorize?client_id=3682744&scope=status,friends,wall,offline,photos,market&redirect_uri=http://oauth.vk.com/blank.html&display=page&response_type=token
in the address bar:
https://oauth.vk.com/blank.html#access_token=345345345345345345345345345d73e7de6acf1475ca460d&expires_in=0&user_id=1
```

### Examples:

[](#examples)

**Upload photo**

```
$server = new PhotosGetUploadServer($token);
$server->setAlbumId($album_id)
    ->setGroupId($group_id);
if (!$server->doRequest()) {
    return;
}
if (!$server->upload([$img_path])) {
    return;
}
$uploadResult = $server->getUploadResult();
$photos = new PhotosSave($token);
$photos->setAlbumId($album_id)
    ->setGroupId($group_id)
    ->setServer($uploadResult->getServer())
    ->setPhotosList($uploadResult->getPhotosList())
    ->setHash($uploadResult->getHash())
    ->setCaption($text);
if (!$photos->doRequest()) {
    return;
}
```

**Obtain detailed information about users VKontakte:**

```
$users = \VkApi\Vk::users()->get()
    ->addUserId(1)
    ->addField('sex')
    ->execute();
foreach ($users as $uI) {
    echo $uI->getId() . "\n";
    echo $uI->getFirstName() . "\n";
    echo $uI->getLastName() . "\n";
    echo $uI->getSex() . "\n";
}
//OR
$user = new \VkSdk\Users\UsersGet();
$user->setUserIds([1])
    ->addField('sex');
if($user->doRequest()){
    foreach($user->getUsersInfo() as $uI ){
        echo $uI->getId() . "\n";
        echo $uI->getFirstName() . "\n";
        echo $uI->getLastName() . "\n";
        echo $uI->getSex() . "\n";
    }
}
```

**Join this group or to attend a meeting VKontakte:**

```
$joinGroup = new GroupsJoin();
$joinGroup->setGroupId(1);
if( $joinGroup->doRequest()){
    echo $joinGroup->getResponse();
}
```

**Place a record on the wall VKontakte:**

```
$wallPost = new WallPost();
$wallPost->setOwnerId(1)
    ->setMessage("test");
if($wallPost->doRequest()){
    echo $wallPost->getPostId();
}
```

**Create a new album VKontakte:**

```
$album = new PhotosCreateAlbum();
$album->setTitle("My new test album");
if($album->doRequest()){
    echo $album->getAlbumInfo()->getId();
}
```

**Add user VKontakte to friend:**

```
$friendsAdd = new FriendsAdd();
$friendsAdd->setUserId(1)
    ->setText("Add me please");
if($friendsAdd->doRequest()){
    switch($friendsAdd->getResponse()){
        case FriendsAdd::RESULT_SEND:
        case FriendsAdd::RESULT_ACCEPT:
        case FriendsAdd::RESULT_REPEAT:
            echo "OK";
            break;
    }
}
```

**Change the status of the user VKontakte:**

```
$statusSet = new StatusSet();
$statusSet->setText("This is my new status");
if($statusSet->doRequest()){
    echo $statusSet->getResponse();
}
```

**Add a comment to the discussion VKontakte:**

```
$boardComment = new BoardCreateComment();
$boardComment->setMessage("This is my new comment")
    ->setGroupId(1)
    ->setTopicId(21972158);
if ($boardComment->doRequest()) {
    echo $boardComment->getCommentId();
}
```

**Set the status of "online" in your account VKontakte:**

```
$online = new AccountSetOnline();
if($online->doRequest()){
    echo $online->getResponse();
}
```

**Send message to VKontakte user:**

```
$message = new MessagesSend();
$message->setMessage("Hello people")
    ->setUserId(1);
if($message->doRequest()){
    echo $message->getMessageId();
}
```

**Create a new poll VKontakte:**

```
$poll = new PollsCreate();
$poll->setOwnerId(1)->setIsAnonymous(1)
     ->setQuestion("Would you like to provide financial assistance for a set of these classes?")
     ->addAnswer('Yes')
     ->addAnswer('Of course');
if($poll->doRequest()){
    echo $poll->getPollInfo()->getId() . "\n";
}
```

**Console log example**

```
info(1).........[2016/11/27 17:48:46] -> Set parameter: user_ids as array, values: a:1:{i:0;i:1;}
debug(1)........[2016/11/27 17:48:46] -> execApi: https://api.vk.com/method/users.get?v=5.60
debug(2)........[2016/11/27 17:48:46] -> with headers: a:1:{s:12:"Content-type";s:19:"multipart/form-data";}
debug(3)........[2016/11/27 17:48:46] -> with parameters: a:1:{s:8:"user_ids";s:1:"1";}
debug(4)........[2016/11/27 17:48:46] -> execApi result: {"response":[{"id":1,"first_name":"Павел","last_name":"Дуров"}]}
```

**Connecting your logger**

```
\VkSdk\Includes\Request::setLogger(new \youre\Logger());
```

**Connecting anti captcha**

```
$antiCaptcha = new \AntiCaptcha\RuCaptcha(); //integrated in project now
$antiCaptcha->setAccessToken($anti_captcha_access_token);
\VkSdk\Includes\Request::setAntiCaptcha($antiCaptcha);
```

**Set before and after request callback**

```
\VkSdk\Includes\Request::setBeforeRequestCallback($this, 'beforeRequest');
\VkSdk\Includes\Request::setAfterRequestCallback($this, 'afterRequest');
//OR
\VkSdk\Includes\Request::setBeforeRequestCallback(function(){});
\VkSdk\Includes\Request::setAfterRequestCallback(function(){});
```

Get Access Token: [http://vk.com/dev/auth\_sites](http://vk.com/dev/auth_sites)
 Description of the API methods:

**if you find error - please send mail for me**

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~5 days

Total

55

Last Release

3331d ago

Major Versions

1.2.3 → 2.0.02016-11-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/26b0822e1e5fa564e6b8762213749f2ce5d3e13e6313c09c9da898ea0638e1a6?d=identicon)[programmis](/maintainers/programmis)

---

Top Contributors

[![programmis](https://avatars.githubusercontent.com/u/10850140?v=4)](https://github.com/programmis "programmis (234 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/programmis-php-vk-api-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/programmis-php-vk-api-sdk/health.svg)](https://phpackages.com/packages/programmis-php-vk-api-sdk)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M982](/packages/statamic-cms)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M734](/packages/sylius-sylius)[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

3.0k37.6M133](/packages/darkaonline-l5-swagger)[knuckleswtf/scribe

Generate API documentation for humans from your Laravel codebase.✍

2.3k14.2M63](/packages/knuckleswtf-scribe)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)

PHPackages © 2026

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