2016-10-17 117 views
1

使用我的OAuth 2.0類型Web應用程序的客戶端ID我檢索了一個訪問令牌,它存儲在令牌對象中。現在我想交換該訪問令牌以訪問Gmail API方法。OAuth 2.0如何使用google-api-ruby-client 0.9授權Google API服務?

的服務實例:

gmail = Google::Apis::GmailV1::GmailService.new 

現在我想測試獲得標籤:

@labels = gmail.list_user_labels('me') 

這首先需要授權。

在谷歌API Ruby客戶端0.9 "the authentication and authorization code was moved to the new googleauth library."

Googleauth,然而,似乎取決於在client_secrets.json文件加載,但這似乎並不適用於生產環境。

有沒有辦法解決這個問題,而不必降級到Google API Ruby Client 0.8或0.7.1?

回答

0

AFAIK,在Authentication Overview中,OAuth 2.0授權需要客戶端密鑰。

有兩種類型的身份驗證:

  1. 簡單API訪問(API密鑰)

    • 這些API調用不訪問任何私人用戶數據。您的應用程序必須將自己認證爲屬於您的Google Developers Console項目的應用程序。這是衡量項目使用情況以用於會計目的所必需的。
  2. 授權API訪問(的OAuth 2.0)

    • 這些API調用來訪問私有用戶數據。在調用它們之前,有權訪問私有數據的用戶必須授予您的應用程序訪問權限。因此,您的應用程序必須經過身份驗證,用戶必須爲您的應用程序授予訪問權限,並且必須對用戶進行身份驗證才能授予該訪問權限。所有這些都是通過OAuth 2.0和爲它編寫的庫完成的。

客戶端ID和客戶端密鑰:這些字符串唯一標識您的應用程序,用於獲取令牌。它們是爲您的項目在Developers Console上創建的。有三種類型的客戶端ID的,所以一定要爲你的應用程序的正確類型:

  • Web應用程序客戶端ID
  • 安裝的應用程序的客戶端ID
  • 服務帳戶客戶端ID

您可能想要檢查Exchange the authorization code for an access token(Python示例)以瞭解如何交換訪問令牌的代碼實現。

希望這會有所幫助。

+0

謝謝。我通過服務器上的環境變量提供客戶機密碼,並且已經獲得了訪問令牌。 –