Skip to content
New issue

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

Пересылка сообщений от имени бота в беседе не работает #127

Closed
wakebit opened this issue Jan 6, 2019 · 2 comments

Comments

@wakebit
Copy link

wakebit commented Jan 6, 2019

Делаю бота-сообщество, который мог бы общаться в беседе.
Метод из библиотеки context.reply не пересылает сообщение из беседы внутри неё.
При этом в ЛС бот пересылает сообщения нормально.

Посмотрел, что в context. Выдает что-то вроде:

 id: 0,
 conversationMessageId: 473,

id равно 0 почему-то. Ну да ладно, попробовал вручную отправить conversationMessageId в методе context.send:

await context.send({
		message: 'asdasd',
		reply_to: context.conversationMessageId,
		// forward_messages: context.conversationMessageId
});

В API 5.92 в метод messages.send добавили новый параметр reply_to, который непонятно как работает.

Если пересылать сообщение через параметр reply_to, то API VK выбрасывает ошибку, что сообщение не из этого диалога вообще:
APIError: Code №100 - One of the parameters specified was missing or invalid: reply_to have to be message from same chat

Если пересылать сообщение через параметр forward_messages, то ничего не пересылает, просто отправляет обычное сообщение.

@negezor
Copy link
Owner

negezor commented Jan 7, 2019

Дело в том что для ботов не хранятся сообщения из чатов и именно по этому ID 0, так как его попросту нет. Сейчас невозможно использовать большинство методов API связанных с ID сообщения, стоит только ждать обновлений VK API.

@Aloki
Copy link

Aloki commented Aug 10, 2023

Необходимо использовать параметр forward в таком формате (в массиве можно перечислить несколько сообщений):
{"peer_id":$peer_id,"conversation_message_ids":[$conversation_message_id,...]}

Если хотите, чтобы бот ответил на сообщение, а не переслал его (в массиве должно быть одно сообщение):
{"peer_id":$peer_id,"conversation_message_ids":[$conversation_message_id],"is_reply":true}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants