Estoy tratando de crear un bot de discordia en el que, si escribes -cr en el chat, toma los Argumentos del usuario (siendo la etiqueta de jugador del jugador de Clash Royale) y luego usaría el paquete nodo-fetch para recibir datos con mi punto final especificado. Constantemente me encuentro con el error de { reason: 'accessDenied', message: 'Invalid authorization' } . Soy bastante nuevo en esto, especialmente en las API, pero espero acceder a ciertos datos que puedo decidir más adelante (que sé cómo hacerlo). mi código es:
const fetch = require('node-fetch') module.exports = { name: 'clash', aliases: ['cr', 'clashroyale'], category: 'This', utilisation: '{prefix}clash', async execute(client, message) { var msgArgs = message.content.slice(this.name.length + 1) var endpoint = `/players/${msgArgs}` var url = `https://api.clashroyale.com/v1` var token = `hidingmytoken` fetch(url + endpoint, { method: 'POST', headers: { "Authorization": token } }).then(data => data.json()).then(json => { console.log(json) }) }, };Las partes del mensaje con msgArgs y los lados de discordia funcionan, pero obtener esa API de Choque Royale es un gran obstáculo para mí. La API para Clash Royale se puede encontrar aquí https://developer.clashroyale.com/#/documentation y, en general, estoy atascado en todo este concepto. Estoy usando la versión 2.6.6 de node-fetch para poder usar el método require() que debería funcionar si eso importa. En general, ¿cómo puedo pasar mi token correctamente para recibir los datos de la API?
Dado que la API de Clash Royale utiliza autenticación de portador , debe especificar que será un token de portador.
headers: { 'Authorization': `Bearer ${token}` }He implementado la siguiente funcionalidad. El código está escrito en GO pero puedes copiar la lógica y traducirla a tu idioma.
La biblioteca tiene la siguiente funcionalidad:
https://github.com/alessiosavi/GoClashRoyale/blob/master/api/auth.go