vk-io icon indicating copy to clipboard operation
vk-io copied to clipboard

context.reply APIError: Code №10 - Internal server error

Open AntonMaksimau opened this issue 1 year ago • 2 comments

Я хочу сделать так, чтобы при команде от учатсника чата, бот присылал сообщение а) Если сама команда соддержит "replyMessage", то на это сообщение (как context.reply только не на команду, а на сообщение приклепленное в команде) б) Если команда не соддержит "replyMessage", то просто присылало ответ. Вот код, который постоянно возвращает ошибку APIError: Code №10 - Internal server error

command.hear(/^(Бот зацени|Бот оцени)$/i, async (context) => {
    const peerType = context.peerType;
    const senderType = context.senderType;
    if(peerType == "chat" && senderType == "user"){
        const phrases = ["...", "...", "...", "...", "...", "...", "...", "..."];
        const randomPhrase = phrases[Math.floor(Math.random() * phrases.length)]; 
       if(context.hasReplyMessage){
            context.loadMessagePayload();
            const replyMessage = context.replyMessage;
            const messageId = replyMessage.conversationMessageId;
            const peerId = replyMessage.peerId;
            await context.send({                
                message: randomPhrase,
                peer_id: peerId,
                reply_to: messageId,
                random_id: 0,
            });
        } else {
            context.send(randomPhrase);
        }
    }
});

AntonMaksimau avatar Nov 15 '23 13:11 AntonMaksimau

Это внутренняя ошибка ВКонтакте, рекомендую написать в техподдержку. А так же не рекомендую переопределять peer_id в context.send() , так как по умолчанию он уже будет отвечать в текущем диалоге, как и указание random_id не требуется.

negezor avatar Nov 29 '23 13:11 negezor

context.loadMessagePayload(); асинхронный, к слову

mulfyx avatar Dec 19 '23 23:12 mulfyx