2

我已经有了与我的应用程序一起使用的登录 (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 ... 为什么这不起作用?

4

1 回答 1

2

代码很接近,但不完全在那里!

  1. 您正在获取 auth 对象,但实际上并未将其传递给您的客户端(您将其设置为 nil)。
  2. 您似乎将您的客户端密码作为 API 密钥传递,这会导致问题。他们的 API 密钥用于来自 API 控制台的“简单 API 访问”密钥 - 如果您使用 oAuth 2.0 令牌,则无需传递任何内容。如果您愿意,您可以传递一个服务器简单 API 密钥。这实际上捕获了错误地将访问令牌用于不同的项目,因此可能很方便,但不是必需的。
  3. 您不需要为 plus.people.get 指定集合参数

此外,请确保在 API 控制台的服务下启用了 Google+ API:http: //developers.google.com/+

于 2013-05-29T13:09:19.727 回答