未通过Google Plus登录api + Node.js获取用户信息

时间:2016-12-20 07:06:37

标签: node.js oauth-2.0 google-authentication google-api-nodejs-client

我有以下代码段,用于在使用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地址,名字,姓氏等信息

1 个答案:

答案 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参数吗?我猜你得到的是因为它返回了一个错误,就像你没有进行身份验证一样。