Node.js 在NodeJS中使用google analytics api
我在youtube教程的帮助下设置了google analytics api。 我可以通过这部分代码获取我的数据的urlNode.js 在NodeJS中使用google analytics api,node.js,express,google-api,google-analytics-api,Node.js,Express,Google Api,Google Analytics Api,我在youtube教程的帮助下设置了google analytics api。 我可以通过这部分代码获取我的数据的url app.get("/get-url",(req,res) => { const oauth2Client = new google.auth.OAuth2( "XXXX.apps.googleusercontent.com", "XXXX", "
app.get("/get-url",(req,res) => {
const oauth2Client = new google.auth.OAuth2(
"XXXX.apps.googleusercontent.com",
"XXXX",
"http://127.0.0.1:3000/user/dashboard"
);
const scopes = ["https://www.googleapis.com/auth/analytics.readonly"]
const url = oauth2Client.generateAuthUrl({
access_type : "offline",
scope : scopes,
state : JSON.stringify({
callbackUrl : req.body.callbackUrl,
userID : req.body.userid
})
});
request(url,(err,response,body) => {
console.log("error" , err);
console.log("statusCode", response && response.statusCode);
res.send({url});
});
});
app.get("/user/dashboard", async (req,res) => {
const oauth2Client = new google.auth.OAuth2(
"XXXXXX.apps.googleusercontent.com",
"XXXXXX",
"http://127.0.0.1:3000/user/dashboard"
);
const queryURL = new urlParse(req.url);
const code = queryParse.parse(queryURL.query).code;
const tokens = await oauth2Client.getToken(code);
try {
const result = await axios({
method : "POST",
headers : {
authorization : "Bearer " + tokens.tokens.access_token
},
"Content-Type" : "application/json",
url : "https://analyticsreporting.googleapis.com/v4/reports:batchGet",
data : {
"reportRequests":
[
{
"viewId": "XXXXX",
"dateRanges": [{"startDate": "7daysAgo", "endDate": "yesterday"}],
"metrics": [{"expression": "ga:bounceRate"}]
}
]
}
})
bounceRate = result.data.reports[0].data.rows[0].metrics
} catch (error) {
console.log(error);
}
res.send(bounceRate);
})
我可以通过这部分代码查看我的数据
app.get("/get-url",(req,res) => {
const oauth2Client = new google.auth.OAuth2(
"XXXX.apps.googleusercontent.com",
"XXXX",
"http://127.0.0.1:3000/user/dashboard"
);
const scopes = ["https://www.googleapis.com/auth/analytics.readonly"]
const url = oauth2Client.generateAuthUrl({
access_type : "offline",
scope : scopes,
state : JSON.stringify({
callbackUrl : req.body.callbackUrl,
userID : req.body.userid
})
});
request(url,(err,response,body) => {
console.log("error" , err);
console.log("statusCode", response && response.statusCode);
res.send({url});
});
});
app.get("/user/dashboard", async (req,res) => {
const oauth2Client = new google.auth.OAuth2(
"XXXXXX.apps.googleusercontent.com",
"XXXXXX",
"http://127.0.0.1:3000/user/dashboard"
);
const queryURL = new urlParse(req.url);
const code = queryParse.parse(queryURL.query).code;
const tokens = await oauth2Client.getToken(code);
try {
const result = await axios({
method : "POST",
headers : {
authorization : "Bearer " + tokens.tokens.access_token
},
"Content-Type" : "application/json",
url : "https://analyticsreporting.googleapis.com/v4/reports:batchGet",
data : {
"reportRequests":
[
{
"viewId": "XXXXX",
"dateRanges": [{"startDate": "7daysAgo", "endDate": "yesterday"}],
"metrics": [{"expression": "ga:bounceRate"}]
}
]
}
})
bounceRate = result.data.reports[0].data.rows[0].metrics
} catch (error) {
console.log(error);
}
res.send(bounceRate);
})
但问题是,当我刷新页面时,服务器会给我错误并崩溃。
这是错误消息
throw new common_1.GaxiosError(`Request failed with status code ${translatedResponse.status}`, opts,translatedResponse);
我想做的是刷新页面时,我想查看我的数据。我不想首先向/get data url发出get请求。当我向/user/dashboard路由发出get请求时,我想显示它。我如何才能管理它?您好,请不要在公共论坛上共享凭据。我建议您创建新的凭据并删除您在问题中共享的凭据,因为它们在编辑历史记录中仍然可见。