我如何通过google-api-ruby-client 0.9授权OAuth 2.0使用Google API服务?

时间:2016-10-17 12:00:56

标签: ruby-on-rails oauth-2.0 gmail-api google-api-ruby-client

使用Web应用程序类型的OAuth 2.0客户端ID,我检索了一个访问令牌,我已将其存储在令牌对象中。现在,我想交换该访问令牌以访问Gmail API方法。

该服务已实例化:

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

现在我想测试获取标签:

@labels = gmail.list_user_labels('me')

首先需要授权。

在Google API Ruby Client 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?

1 个答案:

答案 0 :(得分:0)

Authentication Overview中,OAFA 2.0授权需要客户机密。

有两种类型的身份验证:

  
      
  1. 简单API访问(API密钥)

         
        
    • 这些API调用不会访问任何私有用户数据。您的应用程序必须将自身身份验证为属于您的Google Developers Console项目的应用程序。这是衡量项目使用情况的必要条件。
    •   
  2.   
  3. 授权API访问权限(OAuth 2.0)

         
        
    • 这些API调用访问私有用户数据。在您可以调用它们之前,有权访问私有数据的用户必须授予您的应用程序访问权限。因此,必须对您的应用程序进行身份验证,用户必须为您的应用程序授予访问权限,并且必须对用户进行身份验证才能授予该访问权限。所有这一切都是通过OAuth 2.0和为其编写的库完成的。
    •   
  4.   
  

客户端ID和客户端密钥:这些字符串唯一标识您的应用程序并用于获取令牌。它们是在Developers Console上为您的项目创建的。有三种类型的客户端ID,因此请确保为您的应用程序获取正确的类型:

     
      
  • Web应用程序客户端ID
  •   
  • 已安装的应用程序客户端ID
  •   
  • 服务帐户客户端ID
  •   

您可能需要检查Exchange the authorization code for an access token(Python示例),了解有关如何交换访问令牌的代码实现。

希望这有帮助。