Как отправить приглашение в беседу вк через бота

Рейтинг: 0Ответов: 2Опубликовано: 04.03.2023

Всем здрасьте, пишу я значит одного бота для экономического РП и этот бот работает на множество бесед, появилась такая задача: надо чтобы бот плевал в пользователя приглашениями в беседы определенных фракций, и у каждой фракции несколько бесед, в каждой из них бот есть.

Начал я разбираться, думать как это организовать - надумал сохранять ссылки на определенные беседы в базу данных и маркировать их тегом фракции, но это не суть, суть в следующем: как я вычитал - ссылки на беседы действительны 1 день.

Таки вот в чем вопрос: как можно сделать вечные приглашения в беседы через бота? Можно ли сделать это так же удобно как и выдача аккаунта через ID [ *id000001(Павел Дуров) ]?

Пишу на Node.js, библиотека VK-IO

Ответы

▲ 0

Вы можете создать группу в VK и добавить в нее бота, а затем добавлять пользователей в эту группу, чтобы дать им доступ к боту. Пользователи могут присоединиться к группе в любое время, и вы можете настроить бота для работы с этой группой.Как альтернативу, вы можете создать множество ботов и добавлять их в различные беседы, чтобы у каждой фракции был свой бот. Это может помочь управлять доступом пользователей к различным фракциям и избежать проблем с временем действия ссылок на беседы.

▲ 0

Можно ли сделать это так же удобно как и выдача аккаунта через ID [ *id000001(Павел Дуров) ]?

Нет, vk такой функционал не предоставляет. Ссылку можно сократить через vk.cc, или методом utils.getShortLink. Тогда это будет выглядеть удобнее.

... суть в следующем: как я вычитал - ссылки на беседы действительны 1 день.

А где вы такое прочитали? Возможно, я не прав, но ссылки работают вечно (обозримо долго, видел рабочие ссылки которым несколько лет). Ссылку получается методом messages.getInviteLink. Если оставить флаг reset, то тогда да, ссылка обновиться, а старая перестают работать.

Если ссылки бота действительно недолговечны, то что мешает постоянно получать новые ссылки прямо перед отправкой сообщения? В лимиты по запросам api это не должно попасть, особенно если написать несложную хранимую процедуру (aka execute).