IGDB API Axios请求返回未定义

时间:2020-09-02 20:35:46

标签: javascript api axios

我正在构建一个Discord机器人,并且我想向IGDB查询搜索到的游戏并返回一些信息。无论我进行搜索或更改,我现在都变得“未定义”。

我在任何地方都使用CORS作为代理。不确定这是否是问题。如何像在Postman中一样获得响应以在控制台中显示数据?

这是我的代码:

client.on('message', (message) => {
    if (message.author.bot) return;

    if (message.content.startsWith(PREFIX)) {
        const [CMD_NAME, ...args] = message.content
            .trim()
            .substring(PREFIX.length)
            .split(/\s+/);
        
        if (CMD_NAME === 'search') {
            if (args.length === 0) return message.reply('Please provide a game.');
            
            // Perform a GET request from the IGDB API through the cors-anywhere proxy.
            const proxyUrl = 'https://cors-anywhere.herokuapp.com/'

            axios({
                url: `${proxyUrl}https://api-v3.igdb.com/games`,
                method: 'POST',
                headers: {
                    'Origin': 'https://api-v3.igdb.com/games',
                    'Accept': 'application/json',
                    'user-key': process.env.IGDB_USER_KEY
                },
                data: `fields name,first_release_date,platforms,cover,summary;search ${args};sort popularity desc;limit 1;`
            })
            .then(response => {
                console.log(response.data);
            })
            .catch(err => {
                console.log(err.response.request._response);
            })
        }
    }
})```

1 个答案:

答案 0 :(得分:0)

我还在研究igdb,并且还很新。如果我错了,请告诉我,我将删除此:D

我认为,由于需要抽搐身份验证,因此标头应该有所不同。 您必须呼叫https://id.twitch.tv/oauth2/token?才能获得access_token,然后可以将其与client_id一起传递给请求的标头。

现在您有了一个客户端ID和一个客户端密钥,您将成为 使用oauth2作为Twitch开发人员进行身份验证。详细 有关信息,请参见Twitch开发人员文档。

这样做将为您提供用于将来的访问令牌 对我们的API的请求。

使用以下命令向https://id.twitch.tv/oauth2/token发出POST请求: 以下查询字符串参数,替换您的客户ID和 客户机密相应。

client_id=Client ID

client_secret=Client Secret

grant_type=client_credentials

headers: {
                        'Accept': 'application/json',
                        'Client-ID':'your_client_id',
                        'Authorization':'Bearer access_token'
                    },

https://api-docs.igdb.com/?javascript#about