使用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?
答案 0 :(得分:0)
在Authentication Overview中,OAFA 2.0授权需要客户机密。
有两种类型的身份验证:
简单API访问(API密钥)
- 这些API调用不会访问任何私有用户数据。您的应用程序必须将自身身份验证为属于您的Google Developers Console项目的应用程序。这是衡量项目使用情况的必要条件。
- 醇>
授权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示例),了解有关如何交换访问令牌的代码实现。
希望这有帮助。