我正在尝试阅读和显示G +用户的活动。使用 Google oauth2 ,我可以在授权完成后收到用户的access_token。
我使用 google_plus gem来拨打G +,我可以使用以下代码接收用户信息
@person = GooglePlus::Person.get("user_id_goes_here", :key => "google_api_key_here")
但是当我尝试使用下面的活动时
activity = GooglePlus::Activity.get("user_id_goes_here")
我能够看到以下错误,
我尝试在网上搜索解决方案,有些人建议超出api通话限制。 (默认为10,000次点击/天)。但我相信我今天只用了20到30个电话。
对此问题的任何建议表示赞赏。
仅供参考:我刚刚在/config/initializers/omniauth.rb文件中添加了google_oauth2的配置代码,如下所示provider :google_oauth2,Rails.application.config.client_id , Rails.application.config.client_secret
注意:以下是我尝试使用Oauth2进行身份验证时的屏幕截图。 我希望这不包括谷歌加范围,让我知道我应该添加{:scope => omniauth.rb中的“REQUIRED_URL_HERE_GOOGLE_PLUS_RELATED”}。但不确定我应该在那里给出什么网址。
谢谢, 巴兰
答案 0 :(得分:0)
我能够找到解决问题的方法..
1) Used {:scope => "https://www.googleapis.com/auth/plus.me"} in /config/initializers/omniauth.rb file
2) Used the code
activities = GooglePlus::Activity.for_person("user_id", :key => "GOOGLE_API_KEY").items
希望有人会觉得这很有用。
答案 1 :(得分:0)
Google_Plus gem要求您在每次请求时都传递您的应用密钥。您可以内联执行此操作:
GooglePlus::Activity.get("user_id_goes_here", key: "api_key_goes_here")
或者在初始值设定项中设置全局变量
GooglePlus.api_key = 'api_key_goes_here'
gem规范中的示例假设您已包含全局变量,因此不显示key:
字符串。这可能是导致你出现问题的原因吗?
在回答第二个问题时,您需要使用oauth请求指定范围。这里给出了一个范围列表https://developers.google.com/gdata/faq#AuthScopes,但值得注意的是url格式似乎已经发布了。请尝试使用https://www.googleapis.com/auth/xxxxx
,其中xxx是您需要的服务。