При обработке ошибки в методе messages.removeChatUser , ничего не происходит.
Часть кода (Node.Js):
try < vk.api.messages.removeChatUser(< chat_id : reqbody[«object»][«message»][«peer_id»] — 2000000000, member_id : reqbody[«object»][«message»][«reply_message»][«from_id»] >); > catch(e) < vk.api.messages.send(< random_id : Date.now(), peer_id : reqbody[«object»][«message»][«peer_id»], message : «Ошибка» >); >
Здесь, в основном могут возникнуть две ошибки — Такого участника нет в беседе, или же Отказано в доступе. Если ошибки не возникает, код работает без проблем. Но при ошибке, часть кода внутри «catch (e)» не выполняется.
В документации библиотеки «Vk-Io» я не смог найти, как ловить ошибки API. Пожалуйста, помогите это сделать.
Это ошибка промисов, вам надо сделать vk.api.call(. ).catch(e=><>)
Это ошибка промисов, вам надо сделать vk.api.call(. ).catch(e=><>)
ВК НЕ РАБОТАЕТ В РОССИИ 7 ФЕВРАЛЯ 2023
Спасибо большое, теперь код работает, но как определить, какая именно ошибка произошла?
Например .catch(e=> < if(e.code == 15) message.send(«Access denied»)
Все коды ошибок смотрите в документации вк
Вы всегда должны обрабатывать ошибки, достаточно будет пробрасывать их вверх.
try await vk.api.messages.removeChatUser( chat_id : reqbody.object.message.peer_id — 2000000000, member_id : reqbody.object.message.reply_message.from_id >); > catch(e) // Коды ошибок в сообщение const error_messages = 15: «Отказано в доступе», 935: «Такого участника нет в беседе» >; await vk.api.messages.send( random_id : Date.now(), peer_id : reqbody.object.message.peer_id, // from APIError message : error_messages[e.code] >); >
Источник: geekrepos.com
Не получается обработать ошибку #496
При обработке ошибки в методе messages.removeChatUser , ничего не происходит.
Часть кода (Node.Js):
try < vk.api.messages.removeChatUser(< chat_id : reqbody[«object»][«message»][«peer_id»] — 2000000000, member_id : reqbody[«object»][«message»][«reply_message»][«from_id»] >); > catch(e) < vk.api.messages.send(< random_id : Date.now(), peer_id : reqbody[«object»][«message»][«peer_id»], message : «Ошибка» >); >
Здесь, в основном могут возникнуть две ошибки — Такого участника нет в беседе, или же Отказано в доступе. Если ошибки не возникает, код работает без проблем. Но при ошибке, часть кода внутри «catch (e)» не выполняется.
В документации библиотеки «Vk-Io» я не смог найти, как ловить ошибки API. Пожалуйста, помогите это сделать.
ВК НЕ РАБОТАЕТ 7 ФЕВРАЛЯ 2023. ЧТО ДЕЛАТЬ?
The text was updated successfully, but these errors were encountered:
ilovevkapi commented Jun 17, 2022
Это ошибка промисов, вам надо сделать vk.api.call(. ).catch(e=><>)
Спасибо большое, теперь код работает, но как определить, какая именно ошибка произошла?
Antonzlo commented Jun 17, 2022
Например .catch(e=> < if(e.code == 15) message.send(«Access denied»)
Все коды ошибок смотрите в документации вк
negezor commented Jun 18, 2022 •
Вы всегда должны обрабатывать ошибки, достаточно будет пробрасывать их вверх.
try await vk.api.messages.removeChatUser( chat_id : reqbody.object.message.peer_id — 2000000000, member_id : reqbody.object.message.reply_message.from_id >); > catch(e) // Коды ошибок в сообщение const error_messages = 15: «Отказано в доступе», 935: «Такого участника нет в беседе» >; await vk.api.messages.send( random_id : Date.now(), peer_id : reqbody.object.message.peer_id, // from APIError message : error_messages[e.code] >); >
Источник: github.com
Ошибка при попытке удалить пользователя из беседы. about vk-io HOT 20 CLOSED
Если после перезапуска приложения бот отвечает какое-то время, а потом перестаёт, то, скорее всего, во всем виноват Long Poll, если ты больше нигде не накосячил. Вероятнее всего, ты забыл прикрутить обработку ошибок неудачных запросов, а Long Poll сервер ВК частенько любит отдавать 403, 500-503.
При этом, важно помнить, что node-fetch передаёт все ответы сервера (пусть даже с ошибкой) в then() блок, судя из README:
3xx-5xx responses are NOT network errors, and should be handled in then()
Так что, возможно, ошибка закралась где-нибудь здесь, например.
Я могу сильно ошибаться, т.к. код библиотеки не изучал особо, но у меня самой частой проблемой с «игнором» ботов была именно нестабильная работа Long Poll, так что все ошибки нужно обрабатывать и реконнектиться к серверу при их возникновении.
P. S. И ещё, лучшим вариантом будет постараться «упаковать» эти последовательные запросы в твоём коде users.get → messages.getChatUsers → messages.removeChatUser → message.send → users.get? в один execute -запрос. Так будет эффективнее с точки зрения экономии запросов, ибо есть известное ограничение в 3 запроса в секунду.
negezor commented on May 14, 2023 1
Может стоит сделать так?
negezor commented on May 14, 2023 1
Сразу скажу что не стоит напрямую обращаться к контекстным свойствам. Потому что для разных типов получения данных они могут отличаться, а так же не нужно каждый раз заново авторизоваться не стоит если не хочется получить бан IP от ВК ну или просто капчу.
Так же можно следовать простому боту
По коду скажу что он рабочий, проблема видимо просто в прямом обращении к from.id . Если нужно проверить ID чата то можно воспользоваться context.getChatId() !== 4 context.getUserId() !== ***
negezor commented on May 14, 2023 1
Стоит после авторизации сохранить токен и использовать его из конфига.
negezor commented on May 14, 2023
Можно код и список установленных опций?
T1MOXA commented on May 14, 2023
Возможно проблема в не верной проверке if (chat.indexOf(user.id) > -1)
Так как chat возвращает массив объектов.
T1MOXA commented on May 14, 2023
Я использую vk.api.users.get().then(([user2]) второй раз так как разные падежи в сообщениях.
T1MOXA commented on May 14, 2023
Опять непонятные ошибки, уже на ровном месте.
Caught unhandledRejection: < FetchError: network timeout at: https://api.vk.com/method/friends.getRequests?access_token=ТОКЕНv=5.69′, type: ‘request-timeout’, stackframes: [ < file_name: ‘/home/bots/vk/node_modules/node-fetch/lib/index.js’, line_number: 1272 >, < file_name: ‘timers.js’, line_number: 478 >, < file_name: ‘timers.js’, line_number: 302 >, < file_name: ‘timers.js’, line_number: 262 >] > Caught unhandledRejection: < FetchError: network timeout at: https://api.vk.com/method/friends.getRequests?access_token=ТОКЕНv=5.69′, type: ‘request-timeout’ >
При этом бот сидит онлайн но не реагирует на сообщения вообще.
Если что friends.getRequests стоит на таймере, каждые 30 секунд проверяется.
T1MOXA commented on May 14, 2023
После того как перезагрузил его, проблема пропала.
T1MOXA commented on May 14, 2023
Версия VK-IO — 4.0.0-alpha.5
T1MOXA commented on May 14, 2023
Опять отвалился бот, сидит в сети, но на сообщения не реагирует.
Я так понимаю отваливается Long Poll
negezor commented on May 14, 2023
DEBUG=vk-io:updates , сначала собрать информацию надо бы.
T1MOXA commented on May 14, 2023
Проблема появилась после обновления библиотеки с 3 на 4 версию.
До этого проблем не было.
T1MOXA commented on May 14, 2023
2017-12-08T08:27:13.947Z vk-io:updates http —> 2017-12-08T08:27:13.947Z vk-io:updates http 2017-12-08T08:27:13.948Z vk-io:updates http 2017-12-08T08:27:13.948Z vk-io:updates http 2017-12-08T08:27:13.949Z vk-io:updates http 2017-12-08T08:27:13.947Z vk-io:updates http —> 2017-12-08T08:27:13.947Z vk-io:updates http 2017-12-08T08:27:13.948Z vk-io:updates http 2017-12-08T08:27:13.948Z vk-io:updates http 2017-12-08T08:27:13.949Z vk-io:updates http
Дальше бот просто заглох и снова стал игнорить все сообщения.
negezor commented on May 14, 2023
Я залил обновление, попробуй с ним.
T1MOXA commented on May 14, 2023
А сейчас другая ситуация, написал сообщение и в логах бота появились сообщения, но на команду он так и не отреагировал.
2017-12-08T14:44:02.580Z vk-io:updates http —> 2017-12-08T14:44:02.581Z vk-io:updates http ] 2017-12-08T14:44:02.581Z vk-io:updates http —> 2017-12-08T14:44:02.581Z vk-io:updates http ] 2017-12-08T14:44:02.581Z vk-io:updates http —> 2017-12-08T14:44:02.582Z vk-io:updates http ] 2017-12-08T14:44:02.582Z vk-io:updates http —> 2017-12-08T14:44:02.582Z vk-io:updates http ] 2017-12-08T14:44:02.583Z vk-io:updates http —> 2017-12-08T14:44:02.583Z vk-io:updates http ] 2017-12-08T14:44:02.583Z vk-io:updates http —> 2017-12-08T14:44:02.584Z vk-io:updates http ] 2017-12-08T14:44:02.584Z vk-io:updates http —> 2017-12-08T14:44:02.584Z vk-io:updates http ] 2017-12-08T14:44:02.584Z vk-io:updates http —> 2017-12-08T14:44:02.585Z vk-io:updates http ] 2017-12-08T14:44:02.585Z vk-io:updates http —> 2017-12-08T14:44:02.585Z vk-io:updates http ] 2017-12-08T14:44:02.585Z vk-io:updates http —> 2017-12-08T14:44:02.586Z vk-io:updates http ] 2017-12-08T14:44:02.586Z vk-io:updates http —> 2017-12-08T14:44:02.586Z vk-io:updates http ] 2017-12-08T14:44:02.587Z vk-io:updates http —> 2017-12-08T14:44:02.587Z vk-io:updates http ] 2017-12-08T14:44:02.587Z vk-io:updates http —> 2017-12-08T14:44:02.588Z vk-io:updates http ] 2017-12-08T14:44:02.588Z vk-io:updates http —> 2017-12-08T14:44:02.588Z vk-io:updates http ] 2017-12-08T14:44:02.588Z vk-io:updates http —> 2017-12-08T14:44:02.589Z vk-io:updates http ] 2017-12-08T14:44:02.589Z vk-io:updates http —> 2017-12-08T14:44:02.589Z vk-io:updates http ] 2017-12-08T14:44:02.589Z vk-io:updates http —> 2017-12-08T14:44:02.590Z vk-io:updates http ] 2017-12-08T14:44:02.590Z vk-io:updates http —> 2017-12-08T14:44:02.590Z vk-io:updates http ] 2017-12-08T14:44:02.590Z vk-io:updates http —> 2017-12-08T14:44:02.591Z vk-io:updates http ] 2017-12-08T14:44:02.591Z vk-io:updates http —> 2017-12-08T14:44:02.591Z vk-io:updates http ] 2017-12-08T14:44:02.591Z vk-io:updates http —> 2017-12-08T14:44:02.592Z vk-io:updates http ] 2017-12-08T14:44:02.592Z vk-io:updates http —> 2017-12-08T14:44:02.592Z vk-io:updates http ] 2017-12-08T14:44:02.592Z vk-io:updates http —> 2017-12-08T14:44:02.593Z vk-io:updates http ] 2017-12-08T14:44:02.593Z vk-io:updates http —> 2017-12-08T14:44:02.593Z vk-io:updates http ] 2017-12-08T14:44:02.593Z vk-io:updates http —> 2017-12-08T14:44:02.594Z vk-io:updates http ]
negezor commented on May 14, 2023
T1MOXA commented on May 14, 2023
Извините за долгий ответ 🙂
T1MOXA commented on May 14, 2023
не нужно каждый раз заново авторизоваться
Не подскажете где у меня ошибка с авторизацией ?
И как правильно сделать.
negezor commented on May 14, 2023
Проблема с polling связана c #43
Related Issues (20)
- Дополнение resolveResourse HOT 1
- `message_event` неправильно (вообще не) обрабатывается с другими ивентами
- Не исключайте is_cropped свойство сообщения! Спасибо HOT 2
- Получение услуг из групп HOT 1
- Добавить метод upload.userCover HOT 1
- Неверная типизация интерфейса FriendsGetResponse HOT 2
- postponed_id не возвращается в wall_post_new HOT 2
- Ошибка при авторизации ImplicitFlowUser HOT 2
- Авторизация через direct в аккаунт, который находится в бане
- First step всегда true HOT 1
- Ошибка в Attachment.fromString HOT 1
- The value «conversation_message_id» is not returned
- Ошибка авторизации HOT 1
- enterHandler для сцен срабатывает всегда HOT 3
- APIError: Code №5 — User authorization failed: invalid access_token (4) HOT 10
- Как получить необработанные сообщения сообщества если webhook-сервер был оффайн? HOT 1
- Проблема с middleware-io HOT 1
- В объекте MessageContext отображаются не все вложения HOT 2
- Add new type of scenes
- Совместимость с Cloudflare Workers HOT 3
Источник: coder.social