1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-21 01:50:24 +02:00
OpenIntegrations/docs/ru/md/VK/VK.md

94 lines
6.4 KiB
Markdown

---
id: VK
sidebar_class_name: VK
---
<img src={require('../../static/img/APIs/VK.png').default} width='64px' />
# ВКонтакте
Этот раздел посвящен библиотеке для работы с VK API. Она заточена для работы с сообществами и выполнением действий от их имени. На данной странице описаны все действия, необходимые для полноценного начала работы
## Начало работы
Для начала работы необходимо получить некоторые параметры для VK API.
<br/><br/>
Перечень необходимых данных в виде структуры содержится в функции *ПолучитьСтандартныеПараметры()*. Вы можете указывать значения параметров прямо в ней или же передавать их структурой при вызове любых других методов библиотеки в качестве необязательного параметра *Параметры* (последний во всех методах билиотеки). В последнем случае стандартные параметры будут перезаписаны по ключам теми, которые переданы при вызове метода. Перезаписаны будут только совпадающие по ключам данные. Если какой то параметр есть в наборе стандартных, но не был передан при вызове метода, то он сохранит стандартное значение.
<br/><br/>
```bsl
_Параметры = Новый Структура;
_Параметры.Вставить("v" , "5.131");
_Параметры.Вставить("from_group" , "1");
_Параметры.Вставить("group_id" , "123456789");
_Параметры.Вставить("owner_id" , "-123456789");
_Параметры.Вставить("app_id" , "87654321");
_Параметры.Вставить("access_token" , "vk1.a.E-byuFeG1qcN7...");
```
Рассмотрим получение каждого значения:
**1. v**
Параметр `v` означает версию VK API. Тестирование проводилось на 5.131, рекомендуется его таким и оставить
**2. from_group**
От лица группы. Должен быть 1
**3. group_id и owner_id**
ID группы. Если у вас стандартный адрес группы, то id можно найти в URL. В противном случае он будет на вкладке "Управление" в группе, под полем Адрес. owner_id - тоже самое, но со знаком '-' впереди
![BF](../../static/img/Docs/VK/1.png)
**4. app_id**
app_id - ID приложения. Для создания приложения необходимо:
* Перейти по адресу https://id.vk.com/about/business/go, авторизоваться и ввести свои данные физ. или юр. лица
![BF](../../static/img/Docs/VK/2.png)
* Ввести название приложения и выбрать пункт **Web**
![BF](../../static/img/Docs/VK/3.png)
* Ввести домееное имя и URL обработчика перенаправлений. Тут нужно отметить, что данный механизм создания приложений - новый. Еще недавно приложения VK создавались иначе и иметь redirect_url для них было не нужно. На данный момент не совсем понятно, зачем он нужен нам для серверного приложения - просто такого понятия как серверное приложение у VK теперь нет. Теоретически, туда можно вписать что угодно - для работы с библиотекой в получении обратных данных нет необходимости. Однако, с течением времени, это может измениться.
![BF](../../static/img/Docs/VK/4.png)
* Ввести паспортные данные или данные об организации, включить доступ к сообществам (короче, если у вас уже было приложение до этого, то вам крупно повезло, а если нет российского паспорта - придется писать в поддержку)
![BF](../../static/img/Docs/VK/8.png)
* Получить app_id на странице приложения
![BF](../../static/img/Docs/VK/5.png)
**5. access_token**
Ссылку на получение acess_token можно получить при помощи функции *СоздатьСсылкуПолученияТокена* или склеить вручную:
https://oauth.vk.com/authorize?client_id= + *app_id* + &scope=offline,wall,groups,photos,stats,stories,ads&v=5.131&response_type=token&redirect_uri=https://api.vk.com/blank.html
* По этой ссылке необходимо перейти в браузере
* Авторизоваться через ВК и подтвердить доступ
* Забрать токен из параметра URL в адресной строке
![BF](../../static/img/Docs/VK/6.png)
**(Дополнительно) communitytoken**
Некоторые методы, например для работы с чат-ботом сообщества, принимают в качестве параметра communitytoken - в этих методах он заменяет access_token. Для его получения необходимо:
* Зайти в раздел "Управление" в группе ВК
* Найти вкладку "Работа с API"
* Нажать "Создать ключ" и забрать его
![BF](../../static/img/Docs/VK/7.png)
Пока вам не нужно использовать такие методы, получать communitytoken не обязательно