Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка 100 при создании бота для вк.

ryzhenka Знаток (332), на голосовании 12 месяцев назад
При запуске данного бота:

```js
const { VK } = require('vk-io');

const token = 'MY_TOKEN';
const groupId = 'GROUP ID';
const message = '404';
const count = 5;

const vk = new VK({
token,
apiMode: 'parallel',
});

vk.updates.on('message_new', async (context) => {
if (context.isChat && context.text === '404') {
for (let i = 0; i < count; i++) {
await vk.api.messages.send({
peer_id: context.peerId,
message,
});
}
}
});

vk.updates.start().then(() => {
console.log('Бот запущен');
});
```

При помощи команды (node testbot.js) для терминала, появляется ошибка 100. Вот что выдаёт консоль (cmd):

``` node js in Terminal
C:\Users\user32323\node_modules\vk-io\lib\index.js:1671
errors: (response.execute_errors || []).map((error) => (new ExecuteError(error)))
^

ExecuteError: Code №100 - One of the parameters specified was missing or invalid: longpoll for this group is not enabled.
at C:\Users\would\node_modules\vk-io\lib\index.js:1671:73
at Array.map (<anonymous>)
at ParallelWorker.execute (C:\Users\would\node_modules\vk-io\lib\index.js:1671:57)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 100,
params: [],
method: 'groups.getLongPollServer',
[cause]: undefined
}

Node.js v20.9.0
```

upd: Я впервые работаю с вк апи, осознаю, что ему не нравятся разрешения. Как их выдать?
Голосование за лучший ответ
Терр Онтал Мудрец (12751) 1 год назад
У тебя:
 await vk.api.messages.send({  
peer_id: context.peerId,
message,
});
Тут отравляется объект, очевидно неправильный (почему peer_id это поле, а message ты просто через запятую написал). Ну и надеюсь, что ты всё-таки подставляешь значения token и groupId
ryzhenkaЗнаток (332) 1 год назад
Конечно же представляю
Sergio 2.1 Оракул (67303) 1 год назад
1. Перейдите на страницу вашего сообщества в ВКонтакте.
2. Нажмите на кнопку "Управление сообществом".
3. Перейдите на вкладку "Работа с API".
4. В разделе "Long Poll API" нажмите на кнопку "Включить".
5. Убедитесь, что вы включили все необходимые типы событий.
ryzhenkaЗнаток (332) 1 год назад
Включил и выдал все разрешения

ExecuteError: Code №100 - One of the parameters specified was missing or invalid: random_id is a required parameter
at C:\Users\would\node_modules\vk-io\lib\index.js:1671:73
at Array.map (<anonymous>)
at ParallelWorker.execute (C:\Users\would\node_modules\vk-io\lib\index.js:1671:57)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 100,
params: [],
method: 'messages.send',
[cause]: undefined
Sergio 2.1 Оракул (67303) ryzhenka, Вам нужно добавить random_id в параметры метода messages.send. Вот как это можно сделать:
 vk.updates.on('message_new', async (context) => {  
if (context.isChat && context.text === '404') {  
for (let i = 0; i < count; i++) {  
await vk.api.messages.send({  
peer_id: context.peerId,  
message,  
random_id: Math.random(), // Добавьте эту строку 
});  
}  
}  
});  
 
В этом примере я использовал Math.random() для генерации случайного числа в качестве random_id, но вы можете использовать любой другой способ генерации уникального идентификатора.
Похожие вопросы