Как вывести список администраторов беседы? Пишу на python с библиотекой vk api
я столкнулся с такой проблемой, что про vk api python чат-ботов говорят в интернете очень мало.
Я хочу выводить список Администраторов/Создателя как мне это сделать? Пишу на python библиотека vk api
Спасибо заранее) Вот код в которой этой функции ещё нет:
from random import random
from vk_api import VkApi
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.longpoll import VkLongPoll, VkEventType
vk_session = VkApi(token="**********************")
longpoll = VkBotLongPoll(vk_session, "**********")
vk = vk_session.get_api()
def photo(id, url):
vk.messages.send(user_id = id, attachment = url,random_id=0)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat:
if event.obj.text=='!команды':
random_id = round(random() * 10 ** 9)
chat_id = int(event.chat_id)
message = "да ты ***** нет у меня команд!"
vk.messages.send(random_id=random_id,
chat_id=chat_id,
message=message)
Ответы (1 шт):
Решить эту проблему можно с помощью метода groups.getMembers.
Нам нужно передать параметр filter со значением managers
managers — будут возвращены только руководители сообщества (доступно при запросе с передачей access_token от имени администратора сообщества).
Сделать мы можем это вот так: (вместо event.group_id можно ввести сразу id вашего сообщества)
vk.groups.getMembers(group_id=event.group_id, filter='managers')
Или:
vk.method('groups.getMembers', {'group_id': event.group_id, 'filter': 'managers'})
Результатом этого запроса будет подобное значение:
{'count': 6, 'items': [{'id': 123456789, 'role': 'editor'},
{'id': 234567891, 'role': 'administrator', 'permissions': ['ads']},
{'id': 345678912, 'role': 'moderator'},
{'id': 456789123, 'role': 'creator', 'permissions': ['ads']},
{'id': 567891234, 'role': 'administrator', 'permissions': ['ads']},
{'id': 678912345, 'role': 'administrator', 'permissions': ['ads']}]}
Вот код для вашей конкретной задачи, если вы хотите вернуть только id администраторов/владельца:
administrators = []
for manager in session.groups.getMembers(group_id=event.group_id, filter='managers')['items']:
if manager['role'] in ('administrator', 'creator'):
administrators.append(manager['id'])