我有以下代码段,用于在使用gmail登录时检索用户信息:
oauth2Client.getToken(code, function(err, tokens) {
if (err) {
console.log(err);
res.send(err);
return;
}
console.log("allright!!!!");
var plus = google.plus('v1');
var API_KEY = 'AXXXXXXXXXXXXXXXXXXXXXXXXXU'; // specify your API key here
plus.people.get({
auth: API_KEY,
userId: 'me'
}, function (err, user) {
console.log(user);
});
res.send(tokens);
});
Gmail和Google + API均已启用。检索到的用户对象返回'null',而它应该返回用户信息对象。为什么会这样?我为userId提供了正确的价值吗?如何检索gmail地址,名字,姓氏等信息
答案 0 :(得分:0)
您似乎使用了错误的客户端,这里有一个来自Node.js client repo的示例:
oauth2Client.setCredentials({
access_token: 'ACCESS TOKEN HERE',
refresh_token: 'REFRESH TOKEN HERE'
});
plus.people.get({
userId: 'me',
auth: oauth2Client
}, function (err, response) {
// handle err and response
});
您必须通过oauth2Client
属性传递auth
个实例,而不是API_KEY
。
您检查了err
参数吗?我猜你得到的是因为它返回了一个错误,就像你没有进行身份验证一样。