@mspuz

Как отправить сообщение VK, с помощью Python 3?

Добрый день. До этого писал бота используя vk_api и отправлял сообщения в ответ на присланные. Все работает отлично и без проблем. Но тут встала задача отправки сообщения пользователю просто из списка. Начал искать в интернете и натолкнулся на такую возможность, но через приложение. Во всех примерах (датируемых 2017) используется методы - vk.Session и vk.API, которых на данный момент в библиотеке vk нет. Других примеров найти не смог. Вопрос - как все же отправить сообщение пользователю, зная его ID? Спасибо.
  • Вопрос задан
  • 13390 просмотров
Пригласить эксперта
Ответы на вопрос 3
@anerev
Отправлять сообщение может только группа и только в том случае если пользователь уже отправил ей сообщение
Ответ написан
@mspuz Автор вопроса
Вот что получилось:
1. С помощью OAuth-авторизации (https://oauth.vk.com/authorize?client_id={app_id}&... смог получить token
Далее
import vk

token = {полученный token}
session = vk.AuthSession(access_token = token)
api = vk.API(session)
# Например, смог получить тестовые данные о пользователе
api.users.get(user_ids=1, v='5.103')
# Но при попытке отправки сообщения - получаю Access denied
api.messages.send(user_id=96440718, message='Test message', v='5.103')

Как это победить? Или все же невозможно отправить сообщение пользователю просто так?

Нашел такую вот информацию. Видимо теперь просто так сообщение не отправить.
Ответ написан
Комментировать
vk.Session и vk.API были в vk, а вы используете vk_api. Это разные модули.

from vk_api import VkApi, AuthError
from vk_api.utils import get_random_id

vk_session = VkApi('login', 'password')
vk_session.auth(token_only=True)

vk = vk_session.get_api()

vk.messages.send(user_id=ID_пользователя, message='Сообщение', random_id=get_random_id())
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы