我一直在使用Google Drive Ruby gem来访问Google电子表格中的信息,并且随着大量内容的即将弃用,已被迫升级,现在无法再以简单的方式登录用户名和密码(我知道这也被弃用了)
在翻转各种选项并制作某些咒语后,我设法通过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
我知道您可以充当给定的用户,但是尽管在文档中进行了拖网搜索,我似乎无法使其工作。有什么想法吗?
答案 0 :(得分:1)
您必须使用此客户邮件ID分享您的电子表格 - ENV['GAPPS_SERVICE_ACCOUNT_EMAIL']
否则,即使您拥有有效的令牌,也无法访问任何内容。