HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.06.2022, 01:47
Kecer
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами: 2862489

Репутация: 18
По умолчанию

Как достать айди сообщения из переменной message, что бы в дальнейшем отредактировать это сообщение, вроде всё сделал правильно но когда пытаюсь запустить функцию мне выдаёт ошибку

JavaScript:





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


Вот код

JavaScript:





Код:
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
const
message
=
await
msg
.
send
(
{
message
:
'command'
,
chat_id
:
1
,
random_id
:
getRandomId
(
)
}
)
message
.
editMessage
(
{
message
:
'test5'
,
peer_id
:
2000000001
,
message_id
:
message
}
)
}
)


Пояснение:

Я хочу реализовать следующую вещь, я пишу боту в лс /test, бот отправляет в чат под номером 1 сообщение "command", и после его редактирует на "test5", проблема заключается в том, что всё работает, после написания команды /test бот отправляет сообщение "command" в чат, но после выдаёт выше сказанную ошибку, то-есть он не может найти айди сообщения

Вот полная ошибка:

JavaScript:





Код:
APIError
:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id not integer
    at SequentialWorker
.
execute
(
C
:
\Users\usr\Desktop\payload test\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
:
'attachment'
,
value
:
''
}
,
{
key
:
'message'
,
value
:
'test5'
}
,
{
key
:
'keep_forward_messages'
,
value
:
'1'
}
,
{
key
:
'keep_snippets'
,
value
:
'1'
}
,
{
key
:
'peer_id'
,
value
:
'393032625'
}
,
{
key
:
'message_id'
,
value
:
'[object MessageContext]'
}
,
{
key
:
'conversation_message_id'
,
value
:
'0'
}
]
,
[
cause
]
:
undefined
}


Пользуюсь библиотеками:

• vk-io v4.6.0

• @vk-io/hear

• node js
v 16.15.1
 
Ответить с цитированием

  #2  
Старый 26.06.2022, 02:14
Liquit
Участник форума
Регистрация: 23.04.2020
Сообщений: 278
С нами: 3188613

Репутация: 98
По умолчанию

Можно сделать следующим образом:

JavaScript:





Код:
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
await
msg
.
send
(
{
message
:
'command'
,
chat_id
:
1
,
random_id
:
getRandomId
(
)
}
)
.
then
(
message
=>
{
//console.log(message) - посмотреть как называется(наверное будет что-то .id)
message
.
editMessage
(
{
message
:
'test5'
,
peer_id
:
2000000001
,
message_id
:
message
.
id
/*не факт, что будет именно .id, посмотреть надо, а мне лень*/
}
)
}
)
}
)


и да, peer_id тоже будет хранится в переменной message, будет типа
Код:
message.peer_id
скорее всего

пэ эс. console.log(message) выведет тебе объект в консоль, нужно тупо глянуть как называется переменная в объекте и вписать вместо peer_id и message_id
 
Ответить с цитированием

  #3  
Старый 26.06.2022, 02:28
Kecer
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами: 2862489

Репутация: 18
По умолчанию

Цитата:
Сообщение от Liquit  

Можно сделать следующим образом:

JavaScript:





Код:
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
await
msg
.
send
(
{
message
:
'command'
,
chat_id
:
1
,
random_id
:
getRandomId
(
)
}
)
.
then
(
message
=>
{
//console.log(message) - посмотреть как называется(наверное будет что-то .id)
message
.
editMessage
(
{
message
:
'test5'
,
peer_id
:
2000000001
,
message_id
:
message
.
id
/*не факт, что будет именно .id, посмотреть надо, а мне лень*/
}
)
}
)
}
)


и да, peer_id тоже будет хранится в переменной message, будет типа
Код:
message.peer_id
скорее всего
пэ эс. console.log(message) выведет тебе объект в консоль, нужно тупо глянуть как называется переменная в объекте и вписать вместо peer_id и message_id
JavaScript:





Код:
MessageContext
{
id
:
0
,
conversationMessageId
:
0
,
peerId
:
393032625
,
peerType
:
'user'
,
senderId
:
393032625
,
senderType
:
'user'
,
createdAt
:
1656196078
,
updatedAt
:
undefined
,
pinnedAt
:
undefined
,
text
:
undefined
,
forwards
:
MessageForwardsCollection
(
0
)
[
]
,
attachments
:
[
]
,
isOutbox
:
true
,
type
:
'message'
,
subTypes
:
[
'message_new'
]
,
state
:
{
}
}
 
Ответить с цитированием

  #4  
Старый 26.06.2022, 02:29
Liquit
Участник форума
Регистрация: 23.04.2020
Сообщений: 278
С нами: 3188613

Репутация: 98
По умолчанию

Цитата:
Сообщение от Kecer  

JavaScript:





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

conversationMessageId и peerId
 
Ответить с цитированием

  #5  
Старый 26.06.2022, 02:51
Kecer
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами: 2862489

Репутация: 18
По умолчанию

Цитата:
Сообщение от Liquit  

conversationMessageId и peerId
Тока оно почему-то в conversationMessageId 0 ставит постоянно, теперь вот такая ошибка

JavaScript:





Код:
Code №
100
-
One
of
the parameters specified was missing or invalid
:
message_id and conversation_message_id is
undefined
 
Ответить с цитированием

  #6  
Старый 26.06.2022, 04:40
Liquit
Участник форума
Регистрация: 23.04.2020
Сообщений: 278
С нами: 3188613

Репутация: 98
По умолчанию

Цитата:
Сообщение от Kecer  

Тока оно почему-то в conversationMessageId 0 ставит постоянно, теперь вот такая ошибка

JavaScript:





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

а почему у тебя сообщение отправляется в chat_id 1? это должен быть по идее msg.reply
 
Ответить с цитированием

  #7  
Старый 26.06.2022, 04:47
Kecer
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами: 2862489

Репутация: 18
По умолчанию

Цитата:
Сообщение от Liquit  

а почему у тебя сообщение отправляется в chat_id 1? это должен быть по идее msg.reply
не понял, что за msg.reply

Прикол в том что я с этой ошибкой уже мучаюсь 2 дня,

JavaScript:





Код:
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
await
msg
.
send
(
{
message
:
'command'
,
chat_id
:
1
,
random_id
:
getRandomId
(
)
}
)
.
then
(
message
=>
{
console
.
log
(
msg
)
}
)
}
)


Вот когда я в консоль лог вывожу msg, то у меня выводится всё, и айди сообщения и текст его и кто отправил

JavaScript:





Код:
MessageContext
{
id
:
0
,
conversationMessageId
:
204
,
peerId
:
2000000001
,
peerType
:
'chat'
,
senderId
:
393032625
,
senderType
:
'user'
,
createdAt
:
1656204564
,
updatedAt
:
undefined
,
pinnedAt
:
undefined
,
text
:
'/test'
,
forwards
:
MessageForwardsCollection
(
0
)
[
]
,
attachments
:
[
]
,
isOutbox
:
false
,
'$match'
:
[
'/test'
,
index
:
0
,
input
:
'/test'
,
groups
:
undefined
]
,
type
:
'message'
,
subTypes
:
[
'message_new'
]
,
state
:
{
}
}


А сообщение которое я отправил в беседу

JavaScript:





Код:
bot
.
hear
(
/^(?:\/test)$/i
,
async
msg
=>
{
await
msg
.
send
(
{
message
:
'command'
,
chat_id
:
1
,
random_id
:
getRandomId
(
)
}
)
.
then
(
message
=>
{
console
.
log
(
message
)
}
)
}
)


оно его попросту не видит

JavaScript:





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


У него постоянно conversationMessageId: 0

Текст сообщения undefined
 
Ответить с цитированием

  #8  
Старый 26.06.2022, 14:14
Liquit
Участник форума
Регистрация: 23.04.2020
Сообщений: 278
С нами: 3188613

Репутация: 98
По умолчанию

я не использую конечно этот hear, но у меня всё отлично работает и в лс и в беседе

JavaScript:





Код:
vk
.
updates
.
on
(
"message_new"
,
async
(
ctx
)
=>
{
if
(
ctx
.
senderId
==
242231003
)
{
ctx
.
send
(
"hello"
)
.
then
(
message
=>
{
console
.
log
(
message
)
setTimeout
(
(
)
=>
{
vk
.
api
.
messages
.
edit
(
{
message
:
"hello again"
,
conversation_message_id
:
message
.
conversationMessageId
,
peer_id
:
message
.
peerId
}
)
}
,
1000
)
}
)
}
}
)


тебе вовсе не надо указывать дополнительные параметры в msg.send. msg - это контекст, т.е. по факту это уже готовый объект, который хранит в себе ид беседы куда, сам зафигачит радном_ид и вся фигня, тебе нужно всего лишь выбрать текст или прикрепить к сообщению что-то
 
Ответить с цитированием

  #9  
Старый 26.06.2022, 14:42
Kecer
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами: 2862489

Репутация: 18
По умолчанию

Цитата:
Сообщение от Liquit  

я не использую конечно этот hear, но у меня всё отлично работает и в лс и в беседе

JavaScript:





Код:
vk
.
updates
.
on
(
"message_new"
,
async
(
ctx
)
=>
{
if
(
ctx
.
senderId
==
242231003
)
{
ctx
.
send
(
"hello"
)
.
then
(
message
=>
{
console
.
log
(
message
)
setTimeout
(
(
)
=>
{
vk
.
api
.
messages
.
edit
(
{
message
:
"hello again"
,
conversation_message_id
:
message
.
conversationMessageId
,
peer_id
:
message
.
peerId
}
)
}
,
1000
)
}
)
}
}
)


тебе вовсе не надо указывать дополнительные параметры в msg.send. msg - это контекст, т.е. по факту это уже готовый объект, который хранит в себе ид беседы куда, сам зафигачит радном_ид и вся фигня, тебе нужно всего лишь выбрать текст или прикрепить к сообщению что-то
Всмысле, не совсем понял как не указывать айди беседы, яж делаю получается так, пишу в лс боту команду а он отправляет сообщение в беседу с определённым айди
 
Ответить с цитированием

  #10  
Старый 26.06.2022, 15:00
neverlane
Познавший АНТИЧАТ
Регистрация: 01.11.2018
Сообщений: 1,010
С нами: 3964085

Репутация: 183


По умолчанию

в
Код:
chatForSend
находиться id чата

JavaScript:





Код:
import
{
VK
}
from
"vk-io"
import
{
HearManager
}
from
"@vk-io/hear"
const
vk
=
new
VK
(
{
token
:
"token"
}
)
const
bot
=
new
HearManager
(
)
const
chatForSend
=
1
vk
.
updates
.
on
(
"message_new"
,
bot
.
middleware
)
bot
.
hear
(
"/sendToAnotherChat"
,
async
message
=>
{
message
.
reply
(
`send to chat${chatForSend}`
)
const
msg
=
await
message
.
send
(
{
message
:
"отправлено из shiruwatch"
,
peer_ids
:
2e9
+
chatForSend
}
)
setTimeout
(
(
)
=>
{
msg
.
editMessage
(
{
message
:
"root???????????"
}
)
}
,
1500
)
}
)
vk
.
updates
.
start
(
)
.
then
(
(
)
=>
console
.
log
(
"updates started"
)
)
.
catch
(
console
.
error
)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.