Google Drive Ruby-通过服务帐户访问文件



我一直在使用Google Drive Ruby gem访问谷歌电子表格中的信息,随着许多东西即将被弃用,我被迫升级,现在不能再使用简单的用户名和密码登录(我知道这也被弃用了)

在切换各种选项并做出某些咒语后,我成功地通过Oauth登录,如下所示:

client = Google::APIClient.new(application_name: 'Google Drive Ruby test', application_version: '0.0.1')
key = Google::APIClient::KeyUtils.load_from_pkcs12(
'config/key.p12',
ENV['GAPPS_KEY_PASSWORD']
)
asserter = Google::APIClient::JWTAsserter.new(
ENV['GAPPS_SERVICE_ACCOUNT_EMAIL'],
['https://www.googleapis.com/auth/drive'],
key
)
client.authorization = asserter.authorize
auth_token = client.authorization.access_token
google_drive = GoogleDrive.login_with_oauth(access_token)

这很好,但是,我似乎只能充当我的服务帐户,所以不能访问其他用户可以访问的文件。例如:

google_drive.spreadsheet_by_key("18rNqAz3R0hhp7OYEPLU8thGHsUR0jgYgHk3zQ8CWL-4")

退货:

Google::APIClient::ClientError: File not found: 18rNqAz3R0hhp7OYEPLU8thGHsUR0jgYgHk3zQ8CWL-4

我知道你可以作为一个给定的用户,但尽管我浏览了文档,但我似乎无法让它发挥作用。有什么想法吗?

您必须与此客户端邮件id-ENV['GAPPS_SERVICE_ACCOUNT_EMAIL']共享电子表格

否则,即使您拥有有效的令牌,也无法访问任何内容。

相关内容

  • 没有找到相关文章

最新更新