@StivenHolland
Программист-самоучка

Делаю бота в вк для беседы?

vk_api.exceptions.ApiError: [15] Access denied: no access to call this method
это то что мне выдает программа

from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import vk_api
import time
vk = vk_api.VkApi(token="токен")

vk.get_api()

longpoll = VkBotLongPoll(vk, "ид группы")
while True:
    try:
        for event in longpoll.listen():
            if event.type == VkBotEventType.MESSAGE_NEW:
                if event.object.peer_id != event.object.from_id:
                    if event.object.text.lower() == "привет":
                        vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "привет",
                                                            "random_id": 0})
                elif event.object.peer_id == event.object.from_id:
                    if event.object.text.lower() == "привет":
                        vk.method("messages.send", {"user_id": event.object.from_id, "message":"привеет",
                                                        "random_id": 0})


вот она сама
я не понимаю в чем ошибка
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 3
@NinjaNickName
Web разработчик
Права доступа определяют возможность использования токена для работы с тем или иным разделом данных. Так, например, для отправки личного сообщения от имени пользователя токен должен быть получен с правами messages.

Список названий прав доступа, которые необходимы приложению, или сумма их битовых масок передается в параметре scope в процессе получения ключа доступа.


https://vk.com/dev/permissions
https://vk.com/dev/access_token
Ответ написан
duzive
@duzive
Тут должно быть описание
Смотрите коды ошибок. #15 выходит при невалидных данных. Проверьте токен/id группы. А так же проверьте разрешения для Лонгпулла. Так же стоит сделать более читаемый код. Например:
try:
    for event in longpoll.listen():
        if event.type == VkBotEventType.MESSAGE_NEW:
            if event.object.peer_id != event.object.from_id:
                request = event.obj.text.lower() #будем сохранять в переменную ответ
                if request == "привет":
                    
vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "привет", "random_id": 0})
 #но лучше конечно создать функцию для обработки сообщений

except #код ошибки as e:
    print("произошла ошибка!")
Ответ написан
Комментировать
@Febel
КЕК
Просто зайди в настройки группы. Создай новый токен и дай права для отправки сообщений. В коде замени старый токен на новый.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект