2017-02-23 27 views
0

目前,我使用Java客戶端通過Drive API生成Google Documents文件。這工作正常,並作爲我們使用服務帳戶的憑據。文檔創建後,該帳戶將與登錄用戶的電子郵件共享。到現在爲止還挺好。服務帳戶 - >腳本執行API - >調用者沒有權限

第二部分是爲這個新的空文檔生成標題和其他內容。我們發現,腳本可以被部署爲API可執行文件+通過「腳本執行API」觸發,但撞到:

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden 
"The caller does not have permission" 

從其他線程&主題,我發現,它從「範圍也不會使用服務帳戶正確地關聯項目「,我嘗試過:

- >爲文檔創建綁定腳本,部署爲API,將項目編號更改爲服務帳戶也是擁有者的項目編號

- >啓用Drive API的+ Script API

- >提供了以下範圍:

DriveScopes.DRIVE_FILE, ScriptScopes.DRIVE, "https://www.googleapis.com/auth/documents" 

(最後的範圍是在劇本的項目屬性一個是可見的。

我試過這個過程綁定腳本&獨立的,每一次他們與項目關聯,每次我得到同樣的錯誤。

這對於服務器到服務器起作用非常重要,所以我不能有任何用戶交互,因爲它必須生成報告&用一些標準結構填充它們+使用「easy ...」方法來驗證結構之後。

回答

0

你得到這個禁止錯誤的一個原因是你使用的錯誤/不完整範圍。所以請確保您在應用程序中使用適當的範圍。您可以通過檢查SO question中的答案來驗證它。

我還發現有一個已知的bug,Execution API - can't be use a service account。因此,請檢查此問題的替代解決方案。

欲瞭解更多信息,檢查這些線程,如果它可以幫助你。

相關問題