2013-05-28 183 views
2

我已经拥有与我的应用程序一起工作的登录名(OAuth),我现在要做的就是拉下经过身份验证的用户的活动列表(例如状态提要)。将Google Plus与Rails集成

的用户进行身份验证来拉这个名单下来他们的事后的选项,这里是我的代码,迄今:

# 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 

这是我一直运行到(从铁轨控制台)的问题

#<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 ...任何原因,为什么这不起作用?

回答

2

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

  1. 你得到的是auth对象,但并没有真正将它传递给你的客户端(你将它设置为零)。
  2. 您似乎将您的客户端密钥作为API密钥传递,这会导致问题。它们的API密钥用于API控制台的“简单API访问”密钥 - 如果您使用oAuth 2.0令牌,则无需传递任何内容。如果你愿意,你可以通过一个服务器简单的API密钥。这实际上会错误地为不同的项目使用访问令牌,因此可以很方便,但不是必需的。
  3. 你不需要

另外指定plus.people.get一家集参数,确保了Google+ API在API控制台下启用服务:http://developers.google.com/+