使用google people API访问Google连接

时间:2017-03-03 19:42:28

标签: google-api google-api-nodejs-client google-people passport-google-oauth

我想获取从我的应用登录的用户的所有谷歌私人连接。 我启用了Google People和Google Plus API。我设置了凭据API密钥,客户端ID&客户秘密。我正在尝试获取用户连接的网址是

https://people.googleapis.com/v1/people/me/connections?fields=connections&key=api_key&access_token=access_token

另外,我正在使用库 passport-google-oauth 来获取用户access_token。上面的网址中是否有任何遗漏。

我的google身份验证代码

    // send to google to do the authentication
    // profile gets us their basic information including their name
    // email gets their emails
    app.get('/auth/google', passport.authenticate('google', {
        scope: ['profile', 'email','https://www.googleapis.com/auth/contacts.readonly', 'https://www.googleapis.com/auth/contacts']
    }));

    // the callback after google has authenticated the user
    app.get('/auth/google/callback',
    passport.authenticate('google', {
        successRedirect: '/profile',
        failureRedirect: '/'
    }));

1 个答案:

答案 0 :(得分:2)

你没有提到你得到的错误,但通过查看你正在使用的网址,我可以告诉你一些事情。

people.connections.list访问私人用户数据。因此,对于一个您不需要添加仅用于访问公共数据的Key。但是,两者都不应该导致任何错误消息。

我已经测试了您要发送的请求但确实有效但是此请求要求您至少使用connections scopes之一进行了身份验证。

  

https://www.googleapis.com/auth/contacts请求您的应用   给予经过身份验证的联系人的读写访问权限   用户的Google通讯录。   https://www.googleapis.com/auth/contacts.readonly要求你的   应用程序被授予对经过身份验证的用户的联系人的读取权限   Google通讯录。

如果还没有,那么您将收到无法访问错误消息。

{
  "error": {
    "code": 403,
    "message": "Request had insufficient authentication scopes.",
    "status": "PERMISSION_DENIED"
  }
}