我正在构建一个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);
})
}
}
})```
答案 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'
},