我已经有了与我的应用程序一起使用的登录(OAuth)部分,我现在要做的是下拉经过身份验证的用户的事件列表(例如状态提要)。
用户可以选择在经过身份验证后下拉此列表,到目前为止,这是我的代码:
# User Model
def gplus
auth = authorizations.find_by_provider("gplus")
client = Google::APIClient.new(application_name: "AppName", application_version: '1.0', authorization: nil)
plus = client.discovered_api('plus', 'v1')
result = client.execute(
key: API["gplus"][Rails.env]["secret"],
api_method: plus.people.get,
parameters: { 'collection' => 'public', 'userId' => 'me' }
)
return result.data
end
这是我不断遇到的问题(来自 Rails 控制台)
#<Google::APIClient::Schema::Plus::V1::Person:0x3fe649ed04bc
DATA:{"error"=>{"errors"=>[{"domain"=>"usageLimits", "reason"=>"keyInvalid", "message"=>"Bad Request"}], "code"=>400, "message"=>"Bad Request"}}>
我正在使用https://github.com/google/google-api-ruby-client ...这行不通的任何原因?
最佳答案
代码很接近,但还不够!
- 您正在获取 auth 对象,但实际上并未将其传递给您的客户端(您将其设置为 nil)。
- 您似乎将客户端 key 作为 API key 传递,这会导致问题。它们的 API key 用于 API 控制台中的“简单 API 访问” key - 如果您使用 oAuth 2.0 token ,则无需传递任何内容。如果您愿意,可以传递服务器简单 API key 。这实际上会捕获错误地使用不同项目的访问 token ,因此可以很方便,但不是必需的。
- 您不需要为 plus.people.get 指定集合参数
此外,请确保在 API 控制台的“服务”下启用了 Google+ API:http://developers.google.com/+
关于ruby-on-rails-3.1 - 将 Google+ 与 Rails 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16799550/