使用密钥获取 Clash Royale 节点

Clash Royale Node Fetch with Key

我正在尝试制作一个 discord 机器人,如果您在聊天中输入 -cr,它会获取用户的参数(作为 Clash Royale Player 的玩家标签),然后使用包 node-fetch 接收数据使用我指定的端点。我经常运行陷入{ reason: 'accessDenied', message: 'Invalid authorization' }的错误。我对这些东西很陌生,尤其是 API's,但我希望访问某些我可以稍后决定的数据(我知道该怎么做)。我的代码是:

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)
        })
    },
};

带有 msgArgs 和 discord sides 的消息部分都可以工作,但是获取 clash Royale API 对我来说是一个很大的障碍。 Clash Royale 的 API 可以在这里 https://developer.clashroyale.com/#/documentation 找到,我只是大体上坚持这整个概念。我使用的是 node-fetch 的 2.6.6 版,所以我可以使用 require() 方法,如果这确实重要的话,它应该可以工作。一般来说,我如何才能正确传递我的令牌以接收 API 数据?

由于 Clash Royale API 使用 bearer authentication,您需要指定它是不记名令牌。

headers: {
  'Authorization': `Bearer ${token}`
}

我实现了以下功能。代码是用 GO 编写的,但您可以复制逻辑并翻译成您的语言。

该库具有以下功能:

  • 登录
  • 令牌生成
  • 令牌列表
  • 令牌删除

https://github.com/alessiosavi/GoClashRoyale/blob/master/api/auth.go