需要帮助才能在我的代码中使用 api 响应
need help to use an api response in my code
首先,我是这个编码游戏的菜鸟。几天前开始。我正在制作一个用于抽搐的聊天机器人,以便在我的频道中使用以获得乐趣。让机器人启动并开始发出命令。我希望创建一个正常运行时间命令,并设法从螺旋 API 请求数据,但我现在完全不知道如何 "use" 它。
const querystring = require("querystring"),
fetch = require("node-fetch");
const CLIENT_ID = "###";
const STREAMS_URL = "https://api.twitch.tv/helix/streams/";
var started_at = ""
const qs = querystring.stringify({
user_login: "lil__gizmo"
});
const qUrl = `${STREAMS_URL}?${qs}`;
const fetchArgs = {
headers: {
"Client-ID": CLIENT_ID,
'Authorization': 'Bearer ' + "###"
}
};
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
我得到的回复是
{
data: [
{
id: '38236753072',
user_id: '63931875',
user_name: 'Lil__Gizmo',
game_id: '497057',
type: 'live',
title: 'FEAR THE REAPERS!!!',
viewer_count: 6,
started_at: '2020-05-23T13:09:18Z',
language: 'en',
thumbnail_url: 'https://static-cdn.jtvnw.net/previews-ttv/live_user_lil__gizmo-{width}x{height}.jpg',
tag_ids: [Array]
}
],
pagination: {}
}
我正在尝试获取返回对象的 started_at
属性 并在我的代码中使用它。
在您的代码中:
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
你可以这样做:
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => {
const { started_at } = data.data[0];
})
.catch(err => console.error(err));
然后您可以使用该变量做任何您喜欢的事情。
您可以使用 async-await
语法
您正在进行异步操作,因此您必须在函数中执行此操作。
let data;
async function getData() {
try {
data = await fetch(qUrl, fetchArgs).then(res => res.json());
} catch (error) {
console.log(error);
}
}
getData();
//Wait for 2 minutes to get data from server
setTimeout(() => {
console.log(data.data[0].started_at);
}, 2000);
首先,我是这个编码游戏的菜鸟。几天前开始。我正在制作一个用于抽搐的聊天机器人,以便在我的频道中使用以获得乐趣。让机器人启动并开始发出命令。我希望创建一个正常运行时间命令,并设法从螺旋 API 请求数据,但我现在完全不知道如何 "use" 它。
const querystring = require("querystring"),
fetch = require("node-fetch");
const CLIENT_ID = "###";
const STREAMS_URL = "https://api.twitch.tv/helix/streams/";
var started_at = ""
const qs = querystring.stringify({
user_login: "lil__gizmo"
});
const qUrl = `${STREAMS_URL}?${qs}`;
const fetchArgs = {
headers: {
"Client-ID": CLIENT_ID,
'Authorization': 'Bearer ' + "###"
}
};
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
我得到的回复是
{
data: [
{
id: '38236753072',
user_id: '63931875',
user_name: 'Lil__Gizmo',
game_id: '497057',
type: 'live',
title: 'FEAR THE REAPERS!!!',
viewer_count: 6,
started_at: '2020-05-23T13:09:18Z',
language: 'en',
thumbnail_url: 'https://static-cdn.jtvnw.net/previews-ttv/live_user_lil__gizmo-{width}x{height}.jpg',
tag_ids: [Array]
}
],
pagination: {}
}
我正在尝试获取返回对象的 started_at
属性 并在我的代码中使用它。
在您的代码中:
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
你可以这样做:
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => {
const { started_at } = data.data[0];
})
.catch(err => console.error(err));
然后您可以使用该变量做任何您喜欢的事情。
您可以使用 async-await
语法
您正在进行异步操作,因此您必须在函数中执行此操作。
let data;
async function getData() {
try {
data = await fetch(qUrl, fetchArgs).then(res => res.json());
} catch (error) {
console.log(error);
}
}
getData();
//Wait for 2 minutes to get data from server
setTimeout(() => {
console.log(data.data[0].started_at);
}, 2000);