jorrygo/fullvk

VK-api by object oriented way and with the most complete functionality


Keywords
php, api, client, OOP, vk, full, vk-api, vkapi
License
MIT

Documentation

Russian

English

Russian

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΠ°ΠΊΠ΅Ρ‚ находится Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ врСмя Ρ€Π΅Π»ΠΈΠ·Π° 27.09.17

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стоит ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ больший ΠΎΡ…Π²Π°Ρ‚ возмоТностСй vk api

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ доступных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Установка

composer

composer require jorrygo/fullvk

Авторизация

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ авторизация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OAuth ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΎΠ³ΠΈΠ½Π°/пароля

OAuth

$vk = new \JorryGo\FullVk\Vk($client_id, $client_secret);
$link = $vk->getAuthLink('http://yourRedirectUri.com/');

Или с настройками доступа прилоТСния ΠΈ Π½Π΅ΠΊΠΎΠΉ строкой, которая вСрнСтся Π½Π° rediret uri

$link = $vk->getAuthLink('http://yourRedirectUri.com/', 'friends,wall,groups', 'my data for return in redirect uri');

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ access token

Для получСния access token трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ redirect_uri ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ использовали ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ссылкС Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

$vk = new \JorryGo\FullVk\Vk($client_id, $client_secret);

$result = $vk->getAuthToken('http://yourRedirectUri.com/', $code);

Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ с вашим access token ΠΈ id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Авторизация ΠΏΠΎ access token

$user = $vk->getUser($access_token, $user_id);

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот шаг ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сразу ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°

$user = $vk->getAuthToken('http://yourRedirectUri.com/', $code, true);

Авторизация ΠΏΠΎ Π»ΠΎΠ³ΠΈΠ½Ρƒ/ΠΏΠ°Ρ€ΠΎΠ»ΡŽ

Для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ этим способом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния vk ΠΏΠΎΠ΄ windows.

ΠŸΡ€ΠΈ использовании этого способа Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ доступны ΠΎΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ vk-api, Π² Ρ‚ΠΎΠΌ числС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сообщСниями

$vk = new \JorryGo\FullVk\Vk();
$user = $vk->password_authorization('username', 'password');
print_r($user->getProfileInfo());

Π’Ρ‹Π·ΠΎΠ² ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

$user->execute('method.name', ['param'=> 'value']);

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

$user->getProfileInfo(); //Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅
$user->getCounters(); //Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния счСтчиков ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. 
$user->banUser($user_id); //ДобавляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ список. 
$user->unbanUser($user_id); //УдаляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ списка. 
$user->getBanned(); //Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, находящихся Π² Ρ‡Π΅Ρ€Π½ΠΎΠΌ спискС.
$user->getBanned($offset = 0, $count = 20); //Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, находящихся Π² Ρ‡Π΅Ρ€Π½ΠΎΠΌ спискС.

###Π Π°Π±ΠΎΡ‚Π° со стСнами

$user->wall()->get();
$user->wall()->get(['offset' => 10]); //Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² - https://vk.com/dev/wall.get

//Π§ΡƒΠΆΠΈΠ΅ стСны
$user->wall(1)->get(); //Id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹
$user->wall('jorrygo')->get(); //ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹

ΠŸΠΎΡΡ‚ΠΈΠ½Π³ Π½Π° стСну

$user->wall('jorrygo')->post([
    'message' => 'hello world'
]);

$user->wall(-12345)->post([
    'message' => 'hello world in group',
]);

Π’ качСствС id стСны Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ сам id, Ρ‚Π°ΠΊ ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/Π³Ρ€ΡƒΠΏΠΏΡ‹.

Бписок ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ здСсь

Π’Π°ΠΊ ΠΆΠ΅ имССтся ΡƒΠΌΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для прикрСплСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ записи

$user->wall('jorrygo')->post([
    'message' => 'hello world',
    'smart_attachments' => [
        'https://somehost.com/image.jpg',
        'img.jpg',
        'song.mp3',
        'http://someserver.com/another.mp3',
    ],
]);

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, находятся Π»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΈΠ»ΠΈ Π² вашСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ ΠΊ записи.

###Ошибки Π’ случаС, Ссли vk api Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ сработаСт VkException. ВсС ошибки Π»ΠΎΠ³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π»ΠΎΠ³ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

Установка Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для логирования

\JorryGo\FullVk\Vk::setLogDirectory('/logs');

In English

sd