Intenté enviar mensajes como este.
client.api.channels(msg.channel.id).messages.post({ data: { content: 'content', test: 'test' } }) Esperaba que, dado que es una solicitud de publicación de API, guardaría la propiedad de test .
const msgs = await client.api.channels(msg.channel.id).messages.get(); msg.channel.send(msgs[1].test) //error: cannot send an empty message Cambiar .test a .content envía el contenido del mensaje que el bot envió originalmente, pero los resultados de .test no están definidos. ¿Tal vez necesito usar node-fetch o https para que publique y obtenga directamente?
Está enviando la propiedad de test a la API de Discord a través de una solicitud posterior, pero eso no significa que la API de Discord almacenará esa propiedad en su base de datos. Solo se preocupa por los datos que conoce y el resto se descarta. Todas las propiedades que Discord almacena sobre un mensaje se enumeran aquí .
Discord API no le permite almacenar datos arbitrarios dentro de un objeto de mensaje.
Por supuesto, puede buscar soluciones alternativas, como almacenar los datos dentro del color de una inserción (si son lo suficientemente cortos) o una imagen, etc. No creo que sea una buena solución para este problema, pero depende de lo que quieras. cumplir.
Lo que podría hacer es almacenar los datos personalizados usted mismo. Cree algún tipo de middleware que envíe un mensaje a la API de Discord y recupere el objeto de mensaje del mensaje recién creado. Y asocie su identificación con sus datos personalizados y guárdelo en algún lugar (por ejemplo, su base de datos, archivo JSON, etc.)
Más tarde, puede usar la identificación de un mensaje para acceder a sus datos personalizados.