Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ivan-alone/vkaccess
Just use VK API without GUI-trash in access policy
https://github.com/ivan-alone/vkaccess
vk vkontakte vkontakte-api
Last synced: about 1 month ago
JSON representation
Just use VK API without GUI-trash in access policy
- Host: GitHub
- URL: https://github.com/ivan-alone/vkaccess
- Owner: Ivan-Alone
- License: gpl-3.0
- Created: 2017-07-10T20:46:59.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-03-31T13:49:33.000Z (over 2 years ago)
- Last Synced: 2024-10-09T18:22:43.709Z (about 1 month ago)
- Topics: vk, vkontakte, vkontakte-api
- Language: Java
- Homepage:
- Size: 32.2 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VkAccess
Библиотека для получения прямого доступа к токену авторизации ВКонтакте, без назойливых окошек, нужен всего лишь логин и пароль.
Отлично поможет работать с API ВКонтакте из консоли без браузера, поможет встроить ВКонтакте с полным доступом в ваш сайт, игру (например, чат ВК в Minecraft) и так далее.
Библиотека тестовая, изначально написана на PHP, позже без изменений алгоритма переведена на Java. Обе версии доступны (PHP - ООП).
### Описание функционала
#### Обновление от 31.03.2022
Класс PHP был обновлён. Авторизация снова работает штатно. Теперь для использования требуется зависимость, [Network.class.php](https://github.com/Ivan-Alone/PHP-Commons/tree/main/scripts/Network.class.php) (обёртка над PHP cURL) из моего репозитория **PHP-Commons** (так сказать, упрощённого менеджера моих классов).Класс Java более не поддерживается (может, когда-нибудь обновлю, но сейчас мне это не надо).
#### Содержание
##### Список классов:
* VkAccess
* VkAccess.VkApp##### Список функций:
* VkAccess.getVK()
* VkAccess.getAccessToken()
* VkAccess.getUserID()
* VkAccess.invoke(func)
* VkAccess.invoke(func, par)#### Описание классов
##### VkAccess
Базовый класс авторизации в библиотеке. Является публичным нестатическим классом, то есть для использования необходимо создать его инстанцию.Создание инстанции:
PHP:
```php
$vk = new VkAccess($app, $login, $password);
```Java:
```java
VkAccess vk = new VkAccess(app, login, password);
```Значения переменных:
- VkApp app - объект приложения ВКонтакте
- String login - логин пользователя (телефон, e-mail...)
- String password - пароль##### VkApp
Вспомогательный класс, являющийся объектом приложения ВКонтакте, созданного на сайте https://vk.com/dev
Нужен для передачи идентификаторов приложения в объект авторизации.Создание инстанции:
PHP:
```$app = new VkApp($id, $permissions);```
Java:
```VkAccess.VkApp app = new VkAccess.VkApp(id, permissions);```
Значения переменных:
- int id - идентификатор приложения ВКонтакте
- String/String[] permissions - права, требуемые приложению от пользователяСтоит обратить внимание, что права приложения можно передать в конструктор класса как массивом, так и строкой.
Т.е. так:
```VkAccess.VkApp app = new VkAccess.VkApp(123456, "photos,friends,audio,video,notes");```
Либо так:
```VkAccess.VkApp app = new VkAccess.VkApp(123456, new String[]{"photos", "friends", "audio", "video", "notes"});```
#### Описание функций
##### VkAccess.getVK()
Возвращает информационный массив (в Java-версии - Map) со всеми параметрами текущего объекта класса (логин, пароль, токен доступа и прочее)
Типы данных:
* PHP
+ array()
* Java
+ Map##### VkAccess.getAccessToken()
Возвращает токен доступа
Типы данных:
* PHP
+ String
* Java
+ String##### VkAccess.getUserID()
Возвращает идентификатор текущего пользователя (необходим для некоторых запросов к API ВКонтакте)
Типы данных:
* PHP
+ String
* Java
+ int##### VkAccess.invoke(func)
Выполняет запрос без параметров к API ВКонтакте от имени авторизованного пользователя. Возвращает ответ от сервера API ВКонтакте в формате JSON. В PHP-версии происходит автоматический парсинг текста JSON функцией json_decode.
Значения переменных:
- String func - название метода API
Исключения
* Exception - при отсутствии токена (ошибка соединения, неправильный логин и т.п.)Типы данных:
* PHP
+ stdClass Object
* Java
+ String##### VkAccess.invoke(func, par)
Выполняет запрос к API ВКонтакте от имени авторизованного пользователя. Возвращает ответ от сервера API ВКонтакте в формате JSON. В PHP-версии происходит автоматический парсинг текста JSON функцией json_decode.
Значения переменных:
- String func - название метода API
- String par - параметры метода API (в формате "параметр1=тест&параметр2=чтото")Исключения
* Exception - при отсутствии токена (ошибка соединения, неправильный логин и т.п.)Типы данных:
* PHP
+ stdClass Object
* Java
+ String#### Примеры программ с использованием этой библиотеки:
PHP:
```
invoke('photos.getAll'));
print_r($vk->invoke('messages.getHistory', 'user_id=123654&count=137'));
print_r($vk->invoke('wall.get', 'owner_id=123654&count=137&offset=666'));
print_r($vk->invoke('friends.get', 'count=137&order=random&count=282'));?>
```Java:
```
import ru.ivan_alone.api.vkauthlib.VkAccess;
import ru.ivan_alone.api.vkauthlib.VkAccess.VkApp;public class Me {
private static final String LOGIN = "88005553535";
private static final String PASSWORD = "proshepozvonit";
public static void main(String[] args) {
VkApp app = new VkApp(123456, new String[]{"photos", "friends", "wall", "messages", "offline"});
VkAccess vk = new VkAccess(app, LOGIN, PASSWORD);
try {
System.out.println(vk.invoke("photos.getAll"));
System.out.println(vk.invoke("messages.getHistory", "user_id=123654&count=137"));
System.out.println(vk.invoke("wall.get", "owner_id=123654&count=137&offset=666"));
System.out.println(vk.invoke("friends.get", "count=137&order=random&count=282"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
```### Итог
Надеюсь, вам понравится такой полезный функционал, как простой доступ к токену ВКонтакте, без страшных окон, перехватов и прочих ненужных вещей.Пользоваться библиотекой очень просто, и она не перегружена ненужным функционалом - всё остальное каждый разработчик может написать самоcтоятельно, благо API ВКонтакте очень хорошо документирован (https://vk.com/dev/).
Следует учесть, что библиотека входит во ВКонтакте, представляясь браузером Mozila Firefox на операционной системе Windows 10 x64. Авторизованному пользователю придёт соответствующее электронное письмо, информирующее его о входе, а также push-уведомление на смартфон (при наличии).
Использован модифицированный User-Agent, для того, чтобы администрация ВКонтакте могла запретить использовать библиотеку, не вынося мозг разработчику.
```
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0 VkAuthLib/0.0.1 VkAccess/0.0.1
```Крайне не рекомендую использовать мою библиотеку в коммерческих целях, а также для осуществления несанкционированной деятельности. А если вам уж очень захотелось - хотя бы поменяйте User-Agent (несложно найти в исходном тексте библиотеки, благо он небольшой) на что-нибудь своё. Вы же не хотите создать мне проблемы, правда?
Приятного пользования =)