как узнать chat id vk api
Как узнать ID беседы в ВК
Иногда бывает нужно узнать id беседы Вконтакте, для того, чтобы удалить человека из беседы в ВК или зайти в беседу снова.
ID беседы узнать очень просто и с ПК и с мобильного.
Как узнать id беседы в ВК на компьютере
Полная (десктопная версия) Вконтакте:
Откройте беседу и в адресной строке посмотрите и запомните последние цифры, которые идут после знака равно и буквы C – они и являются id Вконтакте.
Как узнать id беседы в ВК
На этом скриншоте Id беседы – 1, т.е. это самая первая беседа у этого пользователя;
Важный момент: id одной и той же беседы разный у всех ее участников. К примеру, у кого-то он может быть 12, а у вас например 33.
Разница в нумерации получается потому, что ID — это порядковый номер беседы у конкретного пользователя. Т.е. если у вас до этой беседы за все время было 32, то логично что у этой будет номер – 33. А у другого участника беседы она может быть всего лишь 12 по счету.
Поэтому пригласить по вашему id новых участников не получится. Нужно создать специальную ссылку беседы Вконтакте, чтобы можно было пригласить других людей.
Как узнать ID беседы Вконтакте в мобильной версии
Как узнать ID беседы Вконтакте с мобильного телефона
Если вы создадите новую беседу, то у нее будет новый другой ID, скорее всего следующий номер по порядку.
Бот VK на Python 2020 года с ответами в беседу
Всем доброго времени суток!
Я очень долго прочесывал интернет в поисках рабочего варианта бота для ВК, разработанного на Python. Никак не мог найти ни одной нормальной, целой статьи — в одной устаревший метод, в другой непонятные ошибки и так далее…
Друзья, я решил поделиться с вами всеми теми знаниями которые приобрел и сейчас мы с вами шаг за шагом напишем хорошего рабочего бота ВК для текущего, 2020, года. Впрочем надеюсь статья не потеряет актуальности и позже.
С чего начать?
Начнем с установки необходимых библиотек. Естественно открываем cmd.exe ( в некоторых случаях может понадобиться запустить от имени администратора) и прописываем туда следующее:
pip install vk
pip install vk_api
Мы установили две библиотеки для работы нашего Python-а с сервисом VK.
Теперь запускаем IDLE и начинаем писать код.
Объясняю: импортируем установленные ранее библиотеки и модули для работы с ними.
Авторизация
Авторизовались как группа. Важно создать такой токен, который будет разрешать отправку, прием, обработку сообщений и, в принципе, все что нам захочется.
Импортируем модуль longpool для работы с чатами.
Нюансы
Дело в том, что в одной программе нельзя одновременно запустить бота для ответов на ЛС и для работы в беседе, поскольку для этого используются два разных модуля longpool и как только запускается прослушивание longpool-ом на канале «ЛС»(Личные Сообщения) прослушивание другого канала, т.е. чата недоступно, пока не завершится первый процесс прослушивания. Проще говоря задачи могут выполняться исключительно последовательно, а не параллельно. Поэтому в целом коде я деактивирую часть с ЛС, заключив ее в »’ кавычки.
Теперь импортируем то же самое, но для ЛС.
Кнопки
Теперь объявим пару функций для кнопок, которые наш бот в будущем будет выдавать по требованию. К ним мы обратимся вскоре ещё раз.
Прием-отправка сообщений из беседы
А теперь будем слушать longpool на предмет новых сообщений. event — переменная в которой будет храниться само сообщение и некоторые данные о нем.
Перевод того, что выше: Если слово «Привет» или «. » или «. » содержится в переменной event, тогда:
Проверяем куда направлен наш event. Если в чат тогда вызываем метод отправки сообщений «vk.messages.send».
Внимание
… переменные key, server и ts необходимо заполнить. Эти переменные нужны для установки связи с сервером VK. Чтобы узнать эти переменные, а они у всех свои, нужно авторизованным перейти на сайт VK разработчикам и во вкладке «Пример запроса» ввести ID своей группы.
random_id — это случайный id сообщения, который в новых версиях VK_API теперь обязателен.
chat_id — это идентификатор беседы, из которой пришел event или иначе говоря сообщение.
if ‘Клавиатура’ in str(event):
Теперь, если пользователь напишет «Клавиатура«, то наш бот щедро предоставит кнопки, о которых мы говорили ранее.
Часть с Личными Сообщениями
Теперь отпишем вторую часть для ЛС без особых подробностей.
Поздравляю! Мы с вами разобрали бота на Python 2020 года. А сейчас я приведу весь код целиком.
Как отправить сообщение через API ВК на Node.js Редактировано: 28.08.2020 в 04:45
Знакомство с методом messages.send
Если вы уже знакомы с тем, как использовать API ВКонтакте, то скорее всего вы захотели сделать первый шаг в работе с ним. Лично я начал свое погружение в VK API именно с секции сообщений. Сначала это была просто тестовая отправка сообщения.
И так, для того, чтобы отправлять сообщения, в VK API есть метод messages.send
Чтобы обращаться к VK API на Node.js, я всегда использую модуль easyvk. Есть и другие варианты, например, vk-io или node-vk-bot-api. Что использовать, решать вам. Но писать статьи я решил с примерами использования easyvk, так как эта библиотека мне знакома больше, чем любая другая, хотябы потому что я ее автор 🙂
На сайте-документации модуля написано подробно о том, как его установить и использовать.
Примеры
Чтобы эта и другие мои статьи о VK API не получились как все типичные статьи из интернета, я буду меньше говорить, и больше показывать.
Отправка сообщения от лица пользователя
Хотелось бы напомнить, что Messages API официально закрыт для аккаунтов ВКонтакте, но это не значит, что им нельзя пользоваться. В библиотеке easyvk, для получения доступа, авторизация происходит по данным официальных клиентов ВКонтакте (Приложение для Android, например), которые уже имеют доступ к секции Messages API. Вам почти ничего не надо делать для успешной отправки первого сообщения.
Если все получилось, вам придет сообщение с текстом Привет!
Отправка сообщения от лица сообщества
Как получить токен сообщества самым простым методом, я описал в этой статье
Чтобы получить доступ к диалогу с пользователем, он должен отправить вам любое сообщение
Параметры все те же.
Если все получилось, сообщество отправило сообщение с текстом Привет!
Отправка сообщения в беседу
Отправка сообщения в беседу от имени сообщества
Чтобы сообщество могло отправлять сообщения в беседу, сначала необходимо это сообщество пригласить в эту самую беседу. Для этого в настройках сообщества надо включить возможности для чат-ботов и открыть специальный сервис для приглашений.
Сервис можно будет найти в меню сообщества
Как отправлять сообщение от имени сообщества после приглашения в беседу
Это мы уже переходим к разработке мини-чат-бота. Но, конечно, это не он.
Сначала включаем Bots LongPoll (пример будет описан на нем, так как его сможет запустить каждый желающий, позже я буду показывать примеры создания чат-ботов с помощью Callback API тоже)
Для этого заходим в настройки сообщества. И включаем все, что касается LongPoll. А именно:
Мы будем отправлять сообщение сразу после того, как сообщество пригласили в беседу. Включим поддержку события входящего сообщения в настройках, так как информация о приглашении придет именно как сообщение.
Теперь сообщество будет кидать всем беседам приветственное сообщение сразу после приглашения.
Отправка стикера
ВКонтакте позволяет отправлять стикеры в сообщениях. Честно говоря, мне доводилось только один раз прибегать к отправке стикера. Это было, когда я писал чат-бота для глобальных бесед. Там надо было как-то реализовать пересылку любого стикера, который бы отправил пользователь. По-моему, у меня не получилось. Точнее, это работало только с бесплатными стикерами. Самое время разобраться в этом вопросе поглубже.
Все тот же messages.send
Если все получилось, то стикер отправился.
Отправка стикера как граффити
Да-да. И такое бывает. Особенно в последнее время. На сколько мне известно, на данный момент ВКонтакте хранит у себя на серверах 19к стикеров (там почти 20). И все они очень разные, прикольные. Некоторые уже нигде не найти. Но они все равно хранятся. Как в общем-то и любая другая информация в ВК. И это если не считать кастомных стикеров, которые люди загружают как граффити. Разберемся, как они это делают.
Для примера возьмем вот такой прикольный стикер https://vk.com/sticker/1-5041-352
Воспользуемся компонентом uploader для загрузки файла.
Вот есть еще такие стикосы
Отправка голосового сообщения
Происходит таким же образом, как и отправка любого документа.
Если вам интересна тема работы с аудио и тем, как я сделал наложение эффектов на голосовое сообщение (реверберация, дисторшн и другие), то можете почитать эту статью
А пока что я покажу простейший пример отправки голосового сообщения
Кстати говоря, отправка аудио сообщений работает и для сообществ! Просто используйте access_token сообщества для настройки под вас.
Отправляем изображение
Оба способа поддерживаются в easyvk, поэтому я покажу оба варианта загрузки.
Для загрузки файла с другого сервера в easyvk есть метод vk.uploader.uploadFetchedFile()
Для загрузки файла с жесткого диска в easyvk есть метод vk.uploader.uploadFile()
На этом все! Спасибо, что дочитали до конца. Надеюсь, что эта статья вам хоть чем-то помогла и вы научились чему-то новому 🙂