Hola chicos, actualmente estoy desarrollando una aplicación de discordia que está conectada a una aplicación de firebase. En esta aplicación de discordia, creé un comando /init-hub que permite al usuario crear un documento en este firestore de firebase con la referencia igual a la identificación del servidor de discordia (un concentrador = un servidor).
Aquí está mi problema,
Creé este comando:
run: async (client: Client, interaction: BaseCommandInteraction) => { if (!interaction.guildId) { await interaction.followUp({ ephemeral: true, content: 'Unable to create HUB for this server, contact us' }); return; } const content = "Hub generated"; // Get firestore db const db = admin.firestore(); // ID OF THE SERVER const guild = client.guilds.cache.get(interaction.guildId); console.log(guild);El registro devuelto aquí es "indefinido", pero antes de eliminar mi aplicación de mi servidor y agregarla nuevamente (tuve un problema), esta función funcionó perfectamente.
¿Debería cambiar la forma en que "busco" mi gremio? ¿Hay otra manera de hacerlo con solo la identificación?
Creo que mi problema proviene del "alcance" o los permisos en la URL de invitación para mi aplicación. Si alguien pudiera decirme cómo debo crear esta URL, esta es la mía:
https://discord.com/api/oauth2/authorize?client_id=[CLIENT_ID]&redirect_uri=https%3A%2F%2Fdiscordapp.com%2Foauth2%2Fauthorize%3F%26client_id%3D[CLIENT_ID]%26scope%3Dguilds%2520applications.commands&response_type=code&scope=guilds%20guilds.members.read%20rpc.voice.read%20applications.commands
También en mi cliente Discord especifiqué esos Intents:
const client = new Client({ intents: [ Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_VOICE_STATES, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.DIRECT_MESSAGES, ] });ACTUALIZAR :
Cuando intento con este código:
const guild = await client.guilds.fetch(interaction.guildId); Recibo este error: DiscordAPIError: Missing Access