Heroku
Известный
Автор темы
Модератор
Привет ✋, давно хотел написать подобный гайд и вот дошли руки. Напишем с вами простого бота в VK с автооплатой через QIWI.
Что нам понадобится для работы:
1) Любая библиотека для работы с API VK (я буду использовать EasyVK)
2) Node-QIWI-SDK
3) Сам Node.JS
После установки всего, что я описал выше переходим в ВКонтакте и создаем или используем уже существующую группу:
1) Переходим в раздел «Работа с API»
В данном разделе переходим в LongPoll API и включаем LongPoll, версию API выбираем 5.103 (можете и свою, я всегда использую 5.103)
Переходим в «Типы событий» и включаем событие на «Входящие сообщения», этого нам хватит.
vk api с помощью библиотеки requests
2) Переходим в раздел «Сообщения» и включаем сообщения группы.
Группа готова к использованию, перейдем к написанию кода, создаем JS файл и открываем его в любом редакторе.
Подключаем наши библиотеки:
JavaScript:
Далее сделаем объект с настройками для VK, где будем хранить токен и версию API для EasyVK:
JavaScript:
Источник: www.blast.hk
Создаем чат-бота ВКонтакте с расписанием уроков
Для начала нам нужно создать сообщество. Для этого на сайте ВК заходим во вкладку «Сообщества», далее нажимаем кнопку «Создать сообщество».
Выбираем любую тематику и вводим название.
Теперь нам нужно настроить сообщество. Заходим во вкладку «Управление» на странице группы.
Далее переходим во вкладку «Сообщения», включаем возможность отправлять в группу сообщения и сохраняем настройку.
Теперь нам нужно подключить бота в наше сообщество. Переходим во вкладку «Настройки для бота», включаем «Возможности ботов» и ставим галочку напротив «Разрешать добавлять сообщество в беседы». Сохраняем настройку.
После этого заходим во вкладку «Настройки», далее во вкладку «Работа с API».
Переходим во вкладку «Long Poll API», включаем Long Poll API, выбираем последнюю версию API и переходим в «Типы событий».
Боты ВКонтакте | Подключение Callback API | Node.JS
Тут мы выбираем все типы событий, которые связаны с сообщениями.
Во вкладке «Callback API» также выбираем последнюю версию API. В типах событий тоже выбираем все, что связано с сообщениями.
Теперь заходим во вкладку «Ключи доступа», нажимаем «Создать ключ», ставим все галочки и нажимаем «Создать». Копируем ключ и сохраняем его в текстовом файле, так как он понадобится нам в следующих шагах.
Настройка группы завершена!
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Почему возникает ошибка при подключении к БД (next js + sequelize)?
- 1 подписчик
- 17 часов назад
- 41 просмотр
Пишем скрипт чат-бота ВК
Для написания скрипта можно использовать множество языков программирования, но я покажу все на примере node.js.
Создаем файл index.js на компьютере и открываем его редактором кода или IDE (я использую VS Code).
Теперь нам нужно импортировать библиотеку, которую мы установим на сервер позже, и вставить токен (ключ доступа), который мы получили в прошлых шагах:
Чтобы чат-бот отправлял раcписание, ему нужно его знать. Давайте создадим объект с днями и занятиями:
Заполните этот объект вашими данными по вышеуказанному примеру.
Теперь нам нужно, чтобы скрипт получал все сообщения, которые отправляются боту:
Проверяем, содержит ли сообщение текст и отправляется ли от имени пользователя:
if (context.text == null || context.isGroup == true || context.text == ‘undefined’) return
Теперь напишем условие на то, что сообщение содержит название дня недели. Также не забываем отправить сообщение с помощью «context.send» вместе с расписанием. Кроме того, добавляем инлайн-кнопку для просмотра расписания на всю неделю, условие которой мы напишем в следующем шаге:
Теперь можно написать условие для просмотра расписания на всю неделю:
Сохраняем файл и приступаем к его установке на сервер.
# Breaking Сhanges
# Поддержка Node.js 12 и выше
Библиотека поддерживает теперь только Node.js 12 и выше.
# VK
– import VK from ‘vk-io’;
+ import < VK >from ‘vk-io’;
- Удалён vk.snippets.resolveResource(), вместо модуля добавлена функция resolveResource() Принимает опции вида:
interfaceIResolveResourceOptions resource:string|number;
api?:API;>
import< resolveResource >from’vk-io’;const result =awaitresolveResource(
api,
- Удалён vk.collect, модуль разбит на мелкие классы и функции
- collect.chain() – используйте класс new Chain()
- collect.executes() – используйте функцию executes() Принимает опции вида:
import< executes >from’vk-io’;const result =awaitexecutes(
api,
- collect..() – используйте функцию createCollectIterator() Принимает опции вида:
import< createCollectIterator >from’vk-io’;const iterator =createCollectIterator(
api,
method:’messages.getConversations’,
params:
extended:1>,// Максимальный count в методе
countPerRequest:200,// Устанавливайте опцию для методов которые не позволяет получить больше N данных, например `users.search`// maxCount: 1000,// Количество попыток вызвать снова при ошибке// retryLimit: 3,// Количество паралельных вызовов если поддерживается execute// parallelRequests: 25>);forawait(const chunk of iterator)
# API
import< getRandomId >from’vk-io’;const result =await api.messages.send( peer_id:1234,
random_id:getRandomId(),
# APIRequest
- Конструктор теперь принимает опции вида:
method:string;
params: Record ;>
- Удалён алиас Request, используйте APIRequest
# Attachment
owner_id:number;
access_key?:string;>interfaceIAttachmentOptions
type: Type;
payload: Partial >
# DocumentAttachment
- Удалён геттер document.typeName
# Context
- Конструктор теперь принимает опции вида:
api:API;
upload: Upload;
type: Type;
subTypes: SubType[];
source: UpdateSource;
updateType:string|number;
- Метод context.is() принимает теперь массив типов
Footer
Как подключить и использовать json файл?
- 1 подписчик
- вчера
- 38 просмотров
Почему модули в nodeJS подключаются по разному?
- 1 подписчик
- 20 окт.
- 33 просмотра
Вакансии с Хабр Карьеры
Senior Node.js разработчик
NEWHR
•Москва
от 270 000 до 400 000 ₽
Backend разработчик (Node.js)
от 100 000 до 150 000 ₽
Fullstack Node.js / React Developer
от 2 500 до 4 500 $
Ещё вакансии
Заказы с Хабр Фриланса
23 окт. 2022, в 15:35
4000 руб./за проект
23 окт. 2022, в 15:27
10000 руб./за проект
Написать программу на С#
23 окт. 2022, в 15:11
4000 руб./за проект
Ещё заказы
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
Самое интересное за 24 часа
Тут сказано поднять простой сервер на node.js. Можно ли такое поднять на Python?
- 1 подписчик
- 20 окт.
- 103 просмотра
Где и как сохранять и передавать токен в nodejs?
- 1 подписчик
- 19 часов назад
- 16 просмотров
Почему выходит ошибка в NodeMon?
- 1 подписчик
- вчера
- 16 просмотров
Как в node.js на windows 10 запускать mp3 на фоне?
- 2 подписчика
- 20 окт.
- 78 просмотров
Как в pg готовить запросы с именованными переменными в операторе LIKE между двумя процентами?
- 1 подписчик
- 22 часа назад
- 26 просмотров
Как сделать шаблон response в express 4?
- 1 подписчик
- 15 часов назад
- 30 просмотров
Почему не работает strapi перенесенный на vps?
- 1 подписчик
- вчера
- 10 просмотров
- https://timeweb.com/ru/community/articles/cha-bot-s-raspisaniem-urokov-v-vk
- https://qna.habr.com/q/826139
- https://negezor.github.io/vk-io/ru/guide/migration-to-v4.html
- https://github.com/negezor/vk-io/issues
Источник: consultantor.ru
H Библиотека расширяющая функционал VK API в черновиках
Теперь мы можем обращаться к методам API указанных в таблице выше.
I. getMembers
Описание: Получение массива ID всех участников сообщества.
Параметры:
groupID — ID сообщества
access_token — токен пользователя
VKR.Group(‘getMembers’, < groupID: 1, access_token: «f43af342fe6e684e5037dd46e8866c44025e1a81ac10c9c6455fe103109a285a105281d13b4b53e9d92» >, function (data) < console.log(‘Результат: ‘, data); >, function (load) < console.log(‘Процесс: ‘ + load + ‘%’); >);
В первую функцию вернет json формата: [1, 2, 4, 613, 431]
Во вторую функцию по ходу будет возвращен процент процесса формата: 8.3231
II. getSearchFriendsInGroups
Описание: Поиск только тех групп, в которых есть ваши друзья.
Параметры:
q — Поисковый запрос
access_token — токен пользователя
VKR.Group(‘getSearchFriendsInGroups’, , function (data) < console.log(‘Результат: ‘, data); >, function (load) < console.log(‘Процесс: ‘ + load + ‘%’); >);
В первую функцию вернет json формата: []
Во вторую функцию по ходу будет возвращен процент процесса формата: 8.3231
III. getCreated
Описание: Дата регистрация пользователей на сайте вконтакте.
Параметры:
ids — Массив ID пользователей
VKR.User(‘getCreated’, , function (data) < console.log(‘Результат: ‘, data); >);
Источник: sohabr.net