首页 > 解决方案 > IGDB API Axios 请求返回未定义

问题描述

我构建了一个 Discord 机器人,我想查询 IGDB 以获取搜索到的游戏并返回一些信息。无论我搜索或更改什么,我目前都只是得到“未定义”。

我正在使用 CORS-anywhere 作为代理。不确定这是否是问题所在。如何像在 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);
            })
        }
    }
})```

标签: javascriptapiaxios

解决方案


我也在研究 igdb 并且非常新。如果我错了,请告诉我,我会删除它:D

我认为现在需要 twitch 身份验证,标题应该有所不同。您必须调用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


推荐阅读