Top.Mail.Ru
Ответы

Программирование Python, не могу написать код для бота ВК

здравствуйте я начинающий программист на пайтоне
я написал бота для общения в ВК
но я не знаю как сделать так что бы этот бот был в беседе
я дал все права в беседе настроил правильно настройки но дальше я не понимаю как мне сделать так что бы он отвечал на сообщения в беседе
import vk_api

from vk_api.longpoll import VkLongPoll, VkEventType



token=""


bh = vk_api.VkApi(token = token)
give = bh.get_api()
longpoll = VkLongPoll(bh)

def blasthack(id, text):
bh.method('messages.send', {'user_id' : id, 'message' : text, 'random_id': 0})


for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:

if event.to_me:


message = event.text.lower()

id = event.user_id


if message == 'привет':
blasthack(id, 'Привет, я бот!')

elif message == 'как дела?':
blasthack(id, 'Хорошо, а твои как?' )

else:
blasthack(id, 'Я вас не понимаю! :(')

помогите пожалуйста сделать/исправить, В интернете посмотрел не нашел того что мне надо

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мыслитель

Чтобы ваш бот работал в беседе ВКонтакте, вам нужно сделать следующее:

1. **Изменить тип доступа**: Убедитесь, что вашему токену доступа предоставлен нужный тип доступа. Для ботов, работающих в беседах, тип доступа должен быть "Сообщества". Если у вас уже есть сообщество ВКонтакте, вы можете настроить там бота и получить токен с правами "Сообщества".

2. **Подписаться на события беседы**: Для обработки сообщений в беседе, боту нужно подписаться на события этой беседы. Вы можете это сделать, указав параметр `peer_id` в методе `messages.getLongPollHistory`.

3. **Изменить обработку событий**: В коде вашего бота нужно изменить обработку событий так, чтобы он реагировал на сообщения в беседе, а не только на сообщения от пользователей. Для этого нужно проверить `event.peer_id`, а не `event.user_id`.

Вот пример обновленного кода вашего бота, который будет работать в беседе:

```python
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType

token = "YOUR_TOKEN_HERE"
group_id = "YOUR_GROUP_ID_HERE" # ID вашего сообщества

vk_session = vk_api.VkApi(token=token)
vk = vk_session.get_api()
longpoll = VkLongPoll(vk_session)

def send_message(peer_id, text):
vk.messages.send(
peer_id=peer_id,
message=text,
random_id=0
)

for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to _me:
message = event.text.lower()
peer_id = event.peer_id # Используем peer_id для определения беседы

if message == 'привет':
send_message(peer_id, 'Привет, я бот!')
elif message == 'как дела?':
send_message(peer_id, 'Хорошо, а твои как?')
else:
send_message(peer_id, 'Я вас не понимаю! :(')
```

Аватар пользователя
Просветленный

Для начала стоит изучить api вк и не использовать gpt. И вообще у вк можно брать ботов для автоответа или использовать готовые приложения.

Аватар пользователя
Мудрец

"Начинающие программисты" начинают не с "ботов для Вконтактика", а с теоретических вещей (алгоритмы и структуры данных)

Аватар пользователя
Мудрец

Нет отступов в коде