PDA

Просмотр полной версии : vk api node js


Kecer
25.06.2022, 04:04
Проблема заключается в том что, если я пишу боту в лс /test, я получаю ответ test и через 5 секунд я получаю ответ test5, и вроде бы скрипт работает но проблема заключается в том что если я его отправляю в беседу, то после прохождения 5 секунд, мне выдаётся следующая ошибка:

JavaScript:






APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id and conversation_message_id is
undefined




Вот код с отправкой в чат

JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
"test5"
}
)
,
5000
)
;
}
)

Kecer
25.06.2022, 17:54
поменяй chat_id на group_id


Нет, либо ты не понял либо это вообще не то что мне нужно, потому-что в таком случае это тоже самое что и вообще не вставлять не chat_id не group_id либо я что-то не так делаю, мне нужно что бы писал лс боту /test и он отправлял test в беседу, и через 5 секунд он редактировал это сообщение в беседе. Но когда я пишу /test, сообщение отправляется в беседу но после прохождения 5 секунд мне выдаёт ошибку

JavaScript:






APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id and conversation_message_id is
undefined

livingflore
25.06.2022, 18:19
это не сработает, но попробуй

JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
chat_id
:
6
}
)
,
5000
)
;
}
)

Kecer
25.06.2022, 18:24
это не сработает, но попробуй

JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
chat_id
:
6
}
)
,
5000
)
;
}
)





Не, всё ровно всё таже проблема

livingflore
25.06.2022, 18:25
Не, всё ровно всё таже проблема



JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
console
.
log
(
message
)
}
)




скинь мне, что выведет

Kecer
25.06.2022, 18:26
JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
console
.
log
(
message
)
}
)




скинь мне, что выведет



JavaScript:






MessageContext
{
id
:
0
,
conversationMessageId
:
0
,
peerId
:
393032625
,
peerType
:
'user'
,
senderId
:
393032625
,
senderType
:
'user'
,
createdAt
:
1656167142
,
updatedAt
:
undefined
,
pinnedAt
:
undefined
,
text
:
undefined
,
forwards
:
MessageForwardsCollection
(
0
)
[
]
,
attachments
:
[
]
,
isOutbox
:
true
,
type
:
'message'
,
subTypes
:
[
'message_new'
]
,
state
:
{
}
}

livingflore
25.06.2022, 18:31
JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
conversation_message_id
:
message
.
conversationMessageId
}
)
,
5000
)
;
}
)

Kecer
25.06.2022, 18:33
JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
conversation_message_id
:
message
.
conversationMessageId
}
)
,
5000
)
;
}
)






JavaScript:






APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id and conversation_message_id is
undefined




Всё таже ошибка

livingflore
25.06.2022, 18:53
JavaScript:






APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id and conversation_message_id is
undefined




Всё таже ошибка



JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
conversation_message_id
:
msg
.
conversationMessageId
}
)
,
5000
)
;
}
)

Kecer
25.06.2022, 18:57
JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
conversation_message_id
:
msg
.
conversationMessageId
}
)
,
5000
)
;
}
)





Так тоже уже попробовал, тоже выдаёт эту же ошибку

livingflore
25.06.2022, 18:58
Так тоже уже попробовал, тоже выдаёт эту же ошибку



https://forum.antichat.xyz/attachments/28070067/

хз у меня все работает, кидай фулл код

Kecer
25.06.2022, 19:03
хз у меня все работает, кидай фулл код


Ну ты это делаешь условно говоря в одной оболочке, не знаю как это ещё назвать, а я пишу боту в лс /test и он сообщение отправляет в беседу и уже в беседе он должен его отредачить на новое сообщение, а если я команду напишу в беседе то оно отредачить, или если в лс напишу тоже отредачит

Вот код:

JavaScript:






const
{
VK
,
getRandomId
,
Keyboard
}
=
require
(
'vk-io'
)
const
vk
=
new
VK
(
{
token
:
"token"
}
)
const
{
HearManager
}
=
require
(
'@vk-io/hear'
)
const
fs
=
require
(
'fs'
)
;
const
bot
=
new
HearManager
(
''
)
vk
.
updates
.
on
(
'message_new'
,
bot
.
middleware
)
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'test'
,
chat_id
:
6
}
)
;
setTimeout
(
(
)
=>
message
.
editMessage
(
{
message
:
'test5'
,
conversation_message_id
:
msg
.
conversationMessageId
}
)
,
5000
)
;
}
)
console
.
log
(
"ok"
)
;
vk
.
updates
.
start
(
)
.
catch
(
console
.
error
)
;

livingflore
25.06.2022, 19:03
Ну ты это делаешь условно говоря в одной оболочке, не знаю как это ещё назвать, а я пишу боту в лс /test и он сообщение отправляет в беседу и уже в беседе он должен его отредачить на новое сообщение, а если я команду напишу в беседе то оно отредачить, или если в лс напишу тоже отредачит


я пишу в беседу у меня все работает

https://forum.antichat.xyz/attachments/28070071/

Kecer
25.06.2022, 19:13
я пишу в беседу у меня все работает


Ты не понял, смотри я пишу в лс команду боту, он отправляет сообщение test в беседу с айдишником 6 и в беседе редачит сообщение. А в беседе пишешь команду и он на эту команду даёт ответ в беседе и там же редачит.

livingflore
25.06.2022, 19:32
Ты не понял, смотри я пишу в лс команду боту, он отправляет сообщение test в беседу с айдишником 6 и в беседе редачит сообщение. А в беседе пишешь команду и он на эту команду даёт ответ в беседе и там же редачит.



JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
6
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'Test 2'
,
peer_id
:
2000000006
,
message_id
:
message
}
)
,
5000
)
;
}
}
)




так?

Kecer
25.06.2022, 19:40
JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
6
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'Test 2'
,
peer_id
:
2000000006
,
message_id
:
message
}
)
,
5000
)
;
}
}
)




так?


Ща попробую



JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
6
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'Test 2'
,
peer_id
:
2000000006
,
message_id
:
message
}
)
,
5000
)
;
}
}
)




так?


APIError: Code №100 - One of the parameters specified was missing or invalid: message_id and conversation_message_id is undefined

Я не понимаю, пкд выбивает одну и ту же ошибку

livingflore
25.06.2022, 19:53
Ща попробую

APIError: Code №100 - One of the parameters specified was missing or invalid: message_id and conversation_message_id is undefined

Я не понимаю, пкд выбивает одну и ту же ошибку


полную ошибку скинь

Kecer
25.06.2022, 19:56
полную ошибку скинь



JavaScript:






(
node
:
4600
)
UnhandledPromiseRejectionWarning
:
APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
Only conversation_message_id or message_id field should be specified
at SequentialWorker
.
execute
(
C
:
\Users\
KIR
\Desktop\google sheets base\node_modules\vk
-
io\lib\index
.
js
:
1670
:
39
)
at
processTicksAndRejections
(
internal
/
process
/
task_queues
.
js
:
93
:
5
)
(
Use
`node --trace-warnings ...`
to show where the warning was created
)
(
node
:
4600
)
UnhandledPromiseRejectionWarning
:
Unhandled promise rejection
.
This error originated either by throwing inside
of
an
async
function
without a catch block
,
or by rejecting a promise which was not handled
with
.
catch
(
)
.
To terminate the node process on unhandled promise rejection
,
use the
CLI
flag
`--unhandled-rejections=strict`
(
see https
:
/
/
nodejs
.
org
/
api
/
cli
.
html#cli_unhandled_rejections_mode
)
.
(
rejection id
:
1
)
(
node
:
4600
)
[
DEP0018
]
DeprecationWarning
:
Unhandled promise rejections are deprecated
.
In the future
,
promise rejections that are not handled will terminate the Node
.
js process
with
a non
-
zero exit code
.

livingflore
25.06.2022, 19:58
JavaScript:






(
node
:
4600
)
UnhandledPromiseRejectionWarning
:
APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
Only conversation_message_id or message_id field should be specified
at SequentialWorker
.
execute
(
C
:
\Users\
KIR
\Desktop\google sheets base\node_modules\vk
-
io\lib\index
.
js
:
1670
:
39
)
at
processTicksAndRejections
(
internal
/
process
/
task_queues
.
js
:
93
:
5
)
(
Use
`node --trace-warnings ...`
to show where the warning was created
)
(
node
:
4600
)
UnhandledPromiseRejectionWarning
:
Unhandled promise rejection
.
This error originated either by throwing inside
of
an
async
function
without a catch block
,
or by rejecting a promise which was not handled
with
.
catch
(
)
.
To terminate the node process on unhandled promise rejection
,
use the
CLI
flag
`--unhandled-rejections=strict`
(
see https
:
/
/
nodejs
.
org
/
api
/
cli
.
html#cli_unhandled_rejections_mode
)
.
(
rejection id
:
1
)
(
node
:
4600
)
[
DEP0018
]
DeprecationWarning
:
Unhandled promise rejections are deprecated
.
In the future
,
promise rejections that are not handled will terminate the Node
.
js process
with
a non
-
zero exit code
.





замени vk.updates.start() на vk.updates.start().catch(console.error), воспроизведи ошибку еще раз и скинь ее

Kecer
25.06.2022, 20:03
замени vk.updates.start() на vk.updates.start().catch(console.error), воспроизведи ошибку еще раз и скинь ее


Там и так так стоит

https://forum.antichat.xyz/attachments/28070139/

livingflore
25.06.2022, 20:06
Там и так так стоит


а какая у тебя версия ноды и вк-ио?

Kecer
25.06.2022, 20:09
а какая у тебя версия ноды и вк-ио?


node js - v14.15.1

А вк ио хз как чекнуть, я его ставил через npm i vk-io, он там самую новую ставит, скорее всего v4

livingflore
25.06.2022, 20:45
node js - v14.15.1
А вк ио хз как чекнуть, я его ставил через npm i vk-io, он там самую новую ставит, скорее всего v4


обнови ноду и перепиши все на тс

а, и еще, используй не npm, а pnpm

Kecer
25.06.2022, 21:06
обнови ноду и перепиши все на тс
а, и еще, используй не npm, а pnpm


Обновил ноду

JavaScript:






C
:
\Users\
KIR
\Desktop\google sheets base\node_modules\vk
-
io\lib\index
.
js
:
1670
this
.
handleError
(
request
,
new
APIError
(
response
.
error
)
)
;
^
APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id and conversation_message_id is
undefined
at SequentialWorker
.
execute
(
C
:
\Users\
KIR
\Desktop\google sheets base\node_modules\vk
-
io\lib\index
.
js
:
1670
:
39
)
at
processTicksAndRejections
(
node:internal/process/task_queues:96:5
)
{
code
:
100
,
params
:
[
{
key
:
'method'
,
value
:
'messages.edit'
}
,
{
key
:
'oauth'
,
value
:
'1'
}
,
{
key
:
'v'
,
value
:
'5.131'
}
,
{
key
:
'message'
,
value
:
'Test 2'
}
,
{
key
:
'peer_id'
,
value
:
'2000000006'
}
,
{
key
:
'message_id'
,
value
:
'0'
}
]
,
[
cause
]
:
undefined
}




Теперь вот такая ошибка

livingflore
25.06.2022, 21:17
JavaScript:






{
key
:
'message_id'
,
value
:
'0'
}





каким образом 0, если message_id указан? нихера не понял

ты просто скопировал и вставил мой код, ничего не меняя, верно?

Kecer
25.06.2022, 21:22
каким образом 0, если message_id указан? нихера не понял
ты просто скопировал и вставил мой код, ничего не меняя, верно?


да, вот я тоже на это внимание обратил сам не понимаю почему 0

livingflore
25.06.2022, 21:23
да, вот я тоже на это внимание обратил сам не понимаю почему 0


ты можешь скинуть мне фулл код без токена и без других команд?

Kecer
25.06.2022, 21:28
ты можешь скинуть мне фулл код без токена и без других команд?



JavaScript:






const
{
VK
,
getRandomId
,
Keyboard
}
=
require
(
'vk-io'
)
const
vk
=
new
VK
(
{
token
:
"token"
}
)
const
{
HearManager
}
=
require
(
'@vk-io/hear'
)
const
fs
=
require
(
'fs'
)
;
const
bot
=
new
HearManager
(
''
)
vk
.
updates
.
on
(
'message_new'
,
bot
.
middleware
)
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
6
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'Test 2'
,
peer_id
:
2000000006
,
message_id
:
message
}
)
,
5000
)
;
}
}
)
console
.
log
(
"ok"
)
;
vk
.
updates
.
start
(
)
.
catch
(
console
.
error
)
;




Вот фулл код

livingflore
25.06.2022, 21:32
JavaScript:






const
{
VK
,
getRandomId
,
Keyboard
}
=
require
(
'vk-io'
)
const
vk
=
new
VK
(
{
token
:
"token"
}
)
const
{
HearManager
}
=
require
(
'@vk-io/hear'
)
const
fs
=
require
(
'fs'
)
;
const
bot
=
new
HearManager
(
''
)
vk
.
updates
.
on
(
'message_new'
,
bot
.
middleware
)
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
6
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'Test 2'
,
peer_id
:
2000000006
,
message_id
:
message
}
)
,
5000
)
;
}
}
)
console
.
log
(
"ok"
)
;
vk
.
updates
.
start
(
)
.
catch
(
console
.
error
)
;




Вот фулл код


я заменил token на свой токен и ничего не меняя попытался воспроизвести ошибку, у меня ее нет, все работает, хз чем помочь

upd: вру, айди чата поменял

Kecer
25.06.2022, 21:34
я заменил token на свой токен и ничего не меняя попытался воспроизвести ошибку, у меня ее нет, все работает, хз чем помочь

upd: вру, айди чата поменял


Кинь свою команду, я попробую её скопировать и чисто изменить айди чата, а то я уже запутался в командах

livingflore
25.06.2022, 21:35
Кинь свою команду, я попробую её скопировать и чисто изменить айди чата, а то я уже запутался в командах



JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
2
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'test5'
,
peer_id
:
2000000002
,
message_id
:
message
}
)
,
5000
)
;
}
}
)

Kecer
25.06.2022, 21:40
JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
2
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'test5'
,
peer_id
:
2000000002
,
message_id
:
message
}
)
,
5000
)
;
}
}
)





Не всё ровно, хз он почему-то message_id не видит, 0 просто ставит ему



JavaScript:






bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
if
(
msg
.
peerType
==
'user'
)
{
const
message
=
await
vk
.
api
.
messages
.
send
(
{
message
:
'Test 1'
,
chat_id
:
2
,
random_id
:
Math
.
floor
(
Math
.
random
(
)
*
892743012
)
}
)
;
setTimeout
(
(
)
=>
vk
.
api
.
messages
.
edit
(
{
message
:
'test5'
,
peer_id
:
2000000002
,
message_id
:
message
}
)
,
5000
)
;
}
}
)





Code №100 - One of the parameters specified was missing or invalid: message_id not integer

Теперь такая ошибка, как я понимаю он не может в переменной message найти айдишник сообщения