Vk updates on что это

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window.

Reload to refresh your session.

negezor / vk-io Public

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Как отловить события ? #62

T1MOXA opened this issue May 2, 2018 · 13 comments

Как отловить события ? #62

T1MOXA opened this issue May 2, 2018 · 13 comments

T1MOXA commented May 2, 2018

Как можно отловить события ?
Раньше работал этот код, но сейчас не работает.

VK FEST 2023 В ПИТЕРЕ — COOLER MASTER, ТАЧКИ, КОСПЛЕЙ И КО-КО-КОМБО


vk.updates.on(‘message’, async (message) => < if (message.isEvent()) console.log(`Event:nType — $| Text — $`); >);

The text was updated successfully, but these errors were encountered:

T1MOXA commented May 2, 2018 •

Это я так полагаю сам эвент

MessageContext < vk: », type: ‘message’, subTypes: [ ‘new_message’ ], state: <>, payload: < id: 169049, date: 1525269784, body: », flags: 8227, geo: null, random_id: null, out: 1, deleted: 0, read_state: 1, emoji: 0, important: 0, user_id: *****, chat_id: 2, title: undefined, attachments: [] >, from: < id: 2000000002, type: ‘chat’ >, text: null, attachments: [], filled: false >

Еще по теме:  Как написать письмо в Вконтакте службу поддержки

Похоже я знаю в чем дело.
message.isEvent() возвращает false

Видимо у меня криво обновилась либа.

negezor commented May 2, 2018

В теле объекта нету action по этому всё верно в контексте. Поставь env DEBUG=vk-io:updates

T1MOXA commented May 2, 2018

Я переустановил либу.
Теперь эвенты заработали, но проверка message.isEvent() все равно false

2018-05-02T14:58:57.445Z vk-io:updates longpoll update [ 80, 2, 0 ] 2018-05-02T14:58:57.445Z vk-io:updates Unsupported polling context type 80 2018-05-02T14:58:57.446Z vk-io:updates http —> 2018-05-02T14:58:58.181Z vk-io:updates http 2018-05-02T14:58:58.747Z vk-io:updates http , <> ]
negezor commented May 2, 2018

Не трудно было бы продебажить метод?

T1MOXA commented May 2, 2018

Не совсем понял что вы имеете в виду.

negezor commented May 2, 2018

В исходном коде поменять и проверить что возвращают методы в isEvent.

T1MOXA commented May 2, 2018 •

isEvent()

this.isChat() == true
А ключа payload.action не существует.
При добавлении пользователя и при кике не один объект context не содержал action

Я бы рад помочь, но не знаком с этой частью апи вк, и не знаю что я должен получить.

2018-05-02T16:42:11.499Z vk-io:updates Unsupported polling context type 80 2018-05-02T16:42:11.499Z vk-io:updates http —> 2018-05-02T16:42:12.015Z vk-io:updates http , <> ] 2018-05-02T16:42:12.017Z vk-io:updates longpoll update [ 51, 2 ] 2018-05-02T16:42:12.017Z vk-io:updates Unsupported polling context type 51 2018-05-02T16:42:12.017Z vk-io:updates longpoll update [ 52, 8, 2000000002, *** ] 2018-05-02T16:42:12.017Z vk-io:updates Unsupported polling context type 52 2018-05-02T16:42:12.017Z vk-io:updates http —> 2018-05-02T16:42:12.200Z vk-io:updates http 2018-05-02T16:42:12.439Z vk-io:updates http

Unsupported polling context type 51

VK Databases Meetup


Это не может быть причиной ?

Источник: github.com

Как можно отследить отправку сообщения с изображением, аудио, стикером и видео?

Обьясняю. Мне нужно отслеживать когда человек отправляет сообщение с изображением/аудио/стикером/видео. Это делается через vk.udpates.on([ // название события ]) или vk.updates.on(‘message_event’) ?
Я также посмотрел массив message и увидел что тип сообщения просто message:

Еще по теме:  Как сделать красивую обложку в ВК

object:< «id»: 0, «conversationMessageId»: 79, «peerId»: 2000000004, «peerType»: «chat», «senderId»: , «senderType»: «user», «createdAt»: 1685765853, «text»: «! message», «forwards»: [], «attachments»: [ < «id»: 457247444, «ownerId»: , «accessKey»: «f1dd50e544076191e8», «albumId»: -3, «text»: «», «createdAt»: 1685765850, «smallSizeUrl»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=130x119sign=0b2deac7b23a0f0df20e292c01fb2e06type=album», «mediumSizeUrl»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=396x363sign=54dea3a277f2163dc854860363d4987ctype=album», «largeSizeUrl»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=396x363sign=54dea3a277f2163dc854860363d4987ctype=album», «sizes»: [ < «height»: 69, «type»: «s», «width»: 75, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=75x69sign=541702b9e577276fddef73bf0d1348e7type=album» >, < «height»: 119, «type»: «m», «width»: 130, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=130x119sign=0b2deac7b23a0f0df20e292c01fb2e06type=album» >, < «height»: 363, «type»: «x», «width»: 396, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=396x363sign=54dea3a277f2163dc854860363d4987ctype=album» >, < «height»: 119, «type»: «o», «width»: 130, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=130x119sign=0b2deac7b23a0f0df20e292c01fb2e06type=album» >, < «height»: 183, «type»: «p», «width»: 200, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=200x183sign=bf458cf6e87e570577699e047d49ff9ctype=album» >, < «height»: 293, «type»: «q», «width»: 320, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=320x293sign=a3a111c0023cd32a26c8d196568d14b5type=album» >, < «height»: 363, «type»: «r», «width»: 396, «url»: «https://sun9-39.userapi.com/impg/IoSai0SFV2YR0svNS1TQoa0n_ug7BpSOAnmdnQ/MOtqVHOjtek.jpg?size=396x363sign=54dea3a277f2163dc854860363d4987ctype=album» >] > ], «isOutbox»: false, «$match»: [ «! message», «message» ], «type»: «message», «subTypes»: [ «message_new» ], «state»: <> > // Свое айди я скрыл. Как вы видите тип message.

  • Вопрос задан 03 июн.
  • 80 просмотров

Комментировать
Решения вопроса 1
Создатель бота Nemo
Что бы обработать нужно просто делать вот так:
vk.updates.on(‘message’, async (message) => < if(message.attachments)< // проверка на фотки и тп let att = message.attachments for(let i = 0; i < att.length; i++)< if(att[i].type == photo)< // фото >else if(att[i].type == video) < // видео >// так можно продолжать и дальше. > > else < return; >>)
Ответ написан вчера
Комментировать
Нравится Комментировать
Ответы на вопрос 1

The_Sketch

Веб разработчик x)

Для отслеживания сообщений с изображениями, аудио, стикерами и видео в VK, вы можете использовать метод vk.updates.on(‘message_new’) , который срабатывает каждый раз, когда на страницу пользователя или группы приходит новое сообщение. Для определения типа сообщения и наличия прикрепленных файлов вы можете проверять содержимое объекта message в обработчике события.

Еще по теме:  Как стать админом группы в ВК без разрешения админа

В приведенном вами примере, сообщение является обычным текстовым сообщением, однако имеет прикрепленное изображение в массиве attachments. Вы можете проверять наличие элементов в этом массиве и определять тип прикрепленного файла по полю type, которое указано в каждом элементе массива. Например, тип изображения будет указан как «type»: «photo» , а тип аудиозаписи будет «type»: «audio»

Ответ написан 03 июн.
Прикол в том что это можно определить только по

let checkPhoto = Boolean(message.attachments[0].albumId) // true or false

в вк вообще таких типов нету как photo, video и тд, все самому через костыль
Внимание! Это можно сделать через
message.attachments[0].type
Выдает по итогу Photo, Video
Ваш ответ на вопрос

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

javascript

  • JavaScript
  • +1 ещё

Сравнить роуты?

  • 1 подписчик
  • 9 часов назад
  • 55 просмотров

Источник: qna.habr.com

VK-IO-QUESTION

npm package

Проще говоря, бот будет ждать ответа именно от пользователя, айди которого был указан в targetUserId .

По умолчанию вопрос задаётся отправителю сообщения ( context.senderId )

Получение payload

Давайте на команду /choice давать пользователю выбор из двух цветов, по нажатию на любую из которых, он получит факт о выбранном цвете

const Keyboard > = require(‘vk-io’); hearManager.hear(‘/choice’, async (context) => const answer = await context.question( ‘Зелёный или синий?’, keyboard: Keyboard.keyboard([ [ Keyboard.textButton( label: ‘Зелёный’, color: ‘positive’, payload: choice: ‘green’ > >), Keyboard.textButton( label: ‘Синий’, color: ‘positive’, payload: choice: ‘blue’ > >) ] ]).oneTime() > ); if (!answer.messagePayload) return context.send(‘Отвечать нужно было нажатием на кнопку’); > if (answer.messagePayload.choice === ‘green’) return context.send(‘Человеский глаз наиболее хорошо различает оттенки именно зеленого цвета.’); > if (answer.messagePayload.choice === ‘blue’) return context.send(‘Синий краситель долгое время был одним из самых дорогих, потому что его изготавливали из лазурита.’); > >);

attachments, forwards, replyMessage, etc.
Рейтинг
( Пока оценок нет )
Загрузка ...