访问Google Plus联系人google-api-ruby-client和omniauth-google-oauth2

我希望从Google Plus获得联系。 我在用

gem "omniauth" gem "omniauth-google-oauth2" 

用于身份validation和

 gem "google-api-client" 

与谷歌apis通信。

到目前为止,身份validation工作正常,我在身份validation后获得了access_token 。 现在问题是我无法找到一种方法来获取我的圈子中的人员列表(我的Google Plus联系人)。

有没有办法做到这一点。

具体来说,我需要知道是否有任何gem更像谷歌的“fb_graph”?

我发现了这个伎俩

 https://plus.google.com/u/0/_/socialgraph/lookup/visible/o=%5Bnull%2Cnull%2C%22_UID_%22%5D&rt=j 

只需要输入“UID”,您就可以在您的圈子中获取联系人,但仅限他们的姓名和ID。 但我需要更多信息……

工作流

 client = Google::APIClient.new client.authorization.client_id = GOOGLE_CONFIG[:app_id] client.authorization.client_secret = GOOGLE_CONFIG[:app_secret] client.authorization.access_token = token plus = client.discovered_api('plus') data = client.execute( plus.people.list, :collection => 'connected', :userId => 'me').data 

在数据中我收到此消息

 {"errors"=>[{"domain"=>"global", "reason"=>"insufficientPermissions", "message"=>"Insufficient Permission"}], "code"=>403, "message"=>"Insufficient Permission"}}> 

我在这里发现了类似的问题,但仍需要找到解决方案。

我需要在设计初始化器中添加Scope ,然后通过auth令牌,一切似乎都能正常工作。

 scope: "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile" 

或者添加这一行

 config.omniauth :google_oauth2, GOOGLE_CONFIG[:app_id], GOOGLE_CONFIG[:app_secret],{ access_type: "offline", approval_prompt: "force", scope: 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile', name: 'google'}