Получить разрешение на отправку сообщений ботом от имени сообщества ВК
Пишу Бота для ВК Сообщества на Python.
У меня есть файлы пользователей, в которых хранится их информация для Бота.
Мне нужно, чтобы этим пользователям отправлялась рассылка в 00:00.
Я получил имена их файлов, получил таким образом их id, занёс в список, но ВК пишет, что:
Нельзя отправить сообщение без права/разрешения
Можете помочь?
UPD:
Прочитав документацию, я использовал метод: showAllowMessagesFromCommunityBox для получения разрешения, но после указания group_id в методе, мне выдало:
int object has no attribute 'copy'
group_id = 1234567890
#Код
if msg_lower == 'вкл рассылку' or msg_lower == 'включить рассылку' or msg_lower == 'рассылка вкл' or msg_lower == 'вкл рассылка':
answered = True
way = 'Data/Users/'+str(id)+'.dat'
time.sleep(0.5)
if newsletter_summerDay == 'Включена':
sender(id, 'Рассылка и так включена!', '')
if newsletter_summerDay == 'Выключена':
sender(id, 'Для включения рассылки нажмите "OK" в появившемся окне', '')
vk_session.method("showAllowMessagesFromCommunityBox", group_id)
if event.onAllowMessagesFromCommunityCancel:
time.sleep(0.5)
sender(id, 'Вы отменили включение рассылки', '')
elif event.onAllowMessagesFromCommunity:
time.sleep(0.5)
sender(id, 'Включаю рассылку...', '')
path = pathlib.Path(way); path.write_text(path.read_text().replace('Рассылка (Какой день лета): Выключена', 'Рассылка (Какой день лета): Включена'))
time.sleep(0.5)
sender(id, 'Рассылка включена!', '')
Сообщение Для включения рассылки нажмите "OK" в появившемся окне отправляется, но после вк метода ничего не работает.
Ответы (1 шт):
Чтобы Вы могли отправлять пользователю сообщения от имени сообщества, пользователь должен разрешить их получение.
Если пользователь написал сообщение сообществу первым, это приравнивается к согласию на получение ответных сообщений (без ограничений по времени, если пользователь не запретил сообщения вручную).
Чтобы запросить у пользователя разрешение на отправку сообщений, используйте:
- Метод showAllowMessagesFromCommunityBox Client API в приложениях сообществ;
- Метод messages.allowMessagesFromGroup в Standalone-приложениях;
- Виджет «Разрешить писать сообществу» на внешнем сайте.
В Callback API и Bots Longpoll API события message_allow и message_deny помогут отслеживать факт разрешения и запрета сообщений от сообщества.
Обратите внимание, получить список всех пользователей, разрешивших сообщения сообществу, через API нельзя, необходимо хранить и синхронизировать этот список на своей стороне.