jorrygo/fullvk

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

0.1.6 2017-10-25 10:51 UTC

This package is not auto-updated.

Last update: 2024-04-14 01:36:23 UTC


README

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