0
我一直在使用Google Drive Ruby gem來訪問Google電子表格中的信息,並且隨着即將棄用的許多內容,我們不得不升級,現在不能升級再登錄有一個簡單的用戶名和密碼(我明白這是被棄用太)Google Drive Ruby - 通過服務帳戶訪問文件
翻轉各種選項,使某些咒語後,我已經成功通過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)
這工作正常,但是,我似乎只能作爲我的服務帳戶,所以不能訪問文件th在其他用戶有權訪問。例如:
google_drive.spreadsheet_by_key("18rNqAz3R0hhp7OYEPLU8thGHsUR0jgYgHk3zQ8CWL-4")
返回:
Google::APIClient::ClientError: File not found: 18rNqAz3R0hhp7OYEPLU8thGHsUR0jgYgHk3zQ8CWL-4
據我所知,您可以根據給定用戶採取行動,但儘管通過文檔拖網,我似乎並沒有能夠得到這個工作。有任何想法嗎?
服務帳戶不是爲此(這是2腿的oauth2)。你需要一個客戶端流程(3 leg oauth2),最終存儲每個用戶的刷新令牌並使用它們訪問THEIR驅動器中的數據。對不起,我不熟悉Ruby的一面。 –
@Pezholio ...你有解決這個問題嗎?有同樣的問題 – Mutuma