Есть ли способ получить идентификатор сообщения Discord после отправки сообщения в канал с сервера узла? - PullRequest
0 голосов
/ 26 апреля 2019

Используя Discord.js в приложении Express / Node.js, я пытаюсь создать бота, который периодически получает внешние данные и обновляет Discord с помощью встроенного сообщения, содержащего некоторые элементы этих данных.Я пытаюсь добавить функцию, которая будет проверять, были ли эти данные удалены из внешнего источника (более не существует после следующего захвата), а затем удалить конкретное сообщение в Discord, которое содержит эти данные, которые были отправлены.

В некоторых сообщениях, опубликованных в Discord, могут быть дубликаты элементов данных, поэтому я хочу удалить их с помощью определенного идентификатора сообщения, но, похоже, идентификатор сообщения назначается при публикации в Discord.

Есть ли способ программно захватитьили вернуть этот идентификатор сообщения при отправке из Discord.js вместо того, чтобы вручную копировать / вставлять идентификатор сообщения из графического интерфейса Discord?Другими словами, мне нужно, чтобы мой бот знал, какое сообщение удалить, если обнаружит, что исходные данные msg больше не собираются.

// FOR-LOOP TO POST DATA TO DISCORD
// see if those IDs are found in persistent array
        for (var i = 0; i < newIDs.length; i++) {
            if (currentIDs.indexOf(newIDs[i]) == -1) {
                currentIDs.push(newIDs[i]); // add to persistent array
                TD.getTicket(33, newIDs[i]) // get ticket object
                .then(ticket => { postDiscord(ticket); }) // post to DISCORD!
            }
        }

        // if an ID in the persistent array is not in temp array,
        // delete from persistent array & existing DISCORD msg.
        // message.delete() - need message ID to get msg object...
        // var msg = channel.fetchMessage(messageID) ?

1 Ответ

0 голосов
/ 26 апреля 2019

Позвольте мне отослать вас к:

https://discord.js.org/#/docs/main/stable/class/Message

Если вы используете async / await, у вас будет что-то вроде:

async () => {
 let message = await channel.send(some message);
 //now you can grab the ID from it like
 console.log(message.id)
}

Если вы собираетесь использовать .hen для обещаний, это та же идея:

channel.send(some message)
    .then(message => {
     console.log(message.id)
     });

ID - это свойство сообщений, и вы получите его только после получения ответа от Discord API. Это означает, что вы должны обрабатывать их асинхронно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...