2013-05-28 401 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/+