Lo probé sin el tiempo de espera, sin transferir el SteamID a una cadena (ambos "No se puede enviar un mensaje vacío") y un poco más. Pero no he llegado más lejos en unos 30 minutos.
(vanityURL = entrada)
Mi función (la API funciona completamente):
const fetch = require("node-fetch"); const botconfig = require("../botconfig.json") async function getSteamID(vanityURL) { const response = await fetch(`https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/?key=${botconfig.steamapikey}&vanityurl=${vanityURL}`); const data = await response.json(); const listDataRaw = JSON.stringify(data); const listData = listDataRaw.toString(); var steamID = listData.replace(/{"response":{"steamid":"|","success":1}}/g, "") // Filter console.log(steamID) return steamID; } module.exports = { getSteamID }Mi comando de prueba:
const getSteamInfo = require('../functions/getSteamInfo'); module.exports.run = async (bot, message, args) => { var vanityURL = args.join(' ') const rawSteamID = getSteamInfo.getSteamID(vanityURL); await new Promise(r => setTimeout(r, 1000)); let steamID = rawSteamID.toString(); message.channel.send(steamID) }; module.exports.command = { name: `test` }¡Gracias por la ayuda!
Simplemente ponga "await" const rawSteamID = await getSteamInfo.getSteamID(vanityURL);
y ver que está funcionando
Olvidó await su llamada a getSteamInfo.getSteamID .
(También olvidó await la llamada a message.channel.send , por lo que en este momento cualquier error que arroje se convertiría en un rechazo no manejado).
const getSteamInfo = require('../functions/getSteamInfo'); module.exports.run = async (bot, message, args) => { const vanityURL = args.join(' ') const rawSteamID = await getSteamInfo.getSteamID(vanityURL) // ^^^^^ const steamID = rawSteamID.toString() // not sure this is even needed...? await message.channel.send(steamID) //^^^ } module.exports.command = { name: `test` }