通过curl获取用户个人资料信息
curl -i https://www.googleapis.com/userinfo/v2/me -H "Authorization: Bearer a-google-account-access-token"
通过 Node 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 node api client library获取用户个人资料信息前提是我已经拥有访问 token ?我可以使用上面的代码来获取配置文件,但我认为使用 google api 库可能会更好,但我不知道如何使用这个 Node google api 客户端库来做到这一点。
通过玩这个playground可以获得一个临时的访问 token
最佳答案
您可以使用 the google node API client library 检索用户个人资料.在这种情况下,请检索作为 https://www.googleapis.com/auth/userinfo.profile
范围的访问 token 和刷新 token 。示例脚本如下。使用本示例时,请设置您的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: '#####'
}
如果我误解了你的问题,我很抱歉。
关于node.js - 如何使用 node google client api 获取具有已获取 token 的用户配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46780218/