如何使用节点Google客户端api获取具有已获取令牌的用户个人资料? [英] How to use the node google client api to get user profile with already fetched token?
问题描述
通过 curl
curl -i https://www.googleapis.com/userinfo/v2/me -H "Authorization: Bearer a-google-account-access-token"
通过节点https获取请求
const https = require('https');
function getUserData(accessToken) {
var options = {
hostname: 'www.googleapis.com',
port: 443,
path: '/userinfo/v2/me',
method: 'GET',
json: true,
headers:{
Authorization: 'Bearer ' + accessToken
}
};
console.log(options);
var getReq = https.request(options, function(res) {
console.log("\nstatus code: ", res.statusCode);
res.on('data', function(response) {
try {
var resObj = JSON.parse(response);
console.log("response: ", resObj);
} catch (err) {
console.log(err);
}
});
});
getReq.end();
getReq.on('error', function(err) {
console.log(err);
});
}
var token = "a-google-account-access-token";
getUserData(token)
我如何使用此 Google节点api客户端库来获取用户个人资料信息已提供访问令牌?我可以使用上面的代码来获取配置文件,但我认为最好使用google api库来完成配置,但是我不知道如何使用该节点google api客户端库来做到这一点.
How can I use this google node api client library to get the user profile info provided that I already have the access token? I can use the code above to get the profile but I thought it's probably better off to use the google api library to do it, but I can't figure out how to do that using this node google api client library.
可以通过播放游乐场 <
A temporary access token can be acquired through playing this playground
推荐答案
您可以使用 Google节点API客户端库.在这种情况下,请检索访问令牌并刷新令牌作为https://www.googleapis.com/auth/userinfo.profile
的范围.示例脚本如下.使用此示例时,请设置您的访问令牌.
You can retrieve the user profile using the google node API client library. In this case, please retrieve the access token and refresh token as the scope of https://www.googleapis.com/auth/userinfo.profile
. The sample script is as follows. When you use this sample, please set your ACCESS TOKEN.
var google = require('googleapis').google;
var OAuth2 = google.auth.OAuth2;
var oauth2Client = new OAuth2();
oauth2Client.setCredentials({access_token: 'ACCESS TOKEN HERE'});
var oauth2 = google.oauth2({
auth: oauth2Client,
version: 'v2'
});
oauth2.userinfo.get(
function(err, res) {
if (err) {
console.log(err);
} else {
console.log(res);
}
});
结果:
{
id: '#####',
name: '#####',
given_name: '#####',
family_name: '#####',
link: '#####',
picture: '#####',
gender: '#####',
locale: '#####'
}
如果我误解了你的问题,对不起.
If I misunderstand your question, I'm sorry.
这篇关于如何使用节点Google客户端api获取具有已获取令牌的用户个人资料?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!