2017-05-20 175 views
1

我有一個小的Google Apps腳本,我已將其部署爲API可執行文件。 雖然我用我使用的範圍(電子表格)的有效標記進行了調用,但我無法通過此403 PERMISSION_DENIED錯誤。 我現在正在API's Explorer上測試這個錯誤。Google API可執行權限被拒絕錯誤

有沒有人有任何想法可能會失蹤?

我的腳本是簡單的(還沒有完成,但它運行 - 這應該對這些最初的測試是不夠的):

OAuth Scope required by script (copied from API's Explorer): 
https://www.googleapis.com/auth/spreadsheets 

function myFunction(get) { 
    var ss = SpreadsheetApp.openById("1axDlnPaoEwhlb_Vs5SLBvkGJrR-fSeOLuHEdSBXCTBg"); // I'm not getting anything from the sheet at this point, I included it just to make sure that the script requires the spreadsheets scope 

    get += " " + "success!"; 

    return ContentService.createTextOutput(get); 
} 

請求(來自API的瀏覽器複製):

POST https://script.googleapis.com/v1/scripts/1d1EKj7vi-gzC0gB02qjw_qBPE1zSrZtJp-YUWuKm3NL3-3t6Sixpm0TZ:run?key={YOUR_API_KEY} 

{ 
"function": "myFunction", 
"parameters": [ 
"Hello world!" 
] 
} 

的響應(從API瀏覽器複製):

{ 
    "error": { 
     "code": 403, 
     "message": "The caller does not have permission", 
     "status": "PERMISSION_DENIED" 
    } 
} 

回答

2

您可能想檢查以下3件事:

  • 確保您的應用程序腳本與正確的開發控制檯項目相關聯。
  • 啓用Apps Script Execution API。
  • 如果您在使用Method: scripts.run的Apps腳本中運行功能,請設置devMode: true,前提是您是該腳本的所有者。否則,請使用默認值false

另外,您應該滿足Using the Execution API中列出的要求。

查看此相關SO post瞭解更多見解。

+0

問題是第一點:我的腳本與錯誤的控制檯項目相關聯。 – jony

0

腳本應該與所使用的OAuth 2.0客戶端ID對應的開發者控制檯項目ID相關聯(在當前的腳本的腳本編輯器:Resources > Cloud Platform Project,然後輸入你的項目ID號) 這就是爲什麼的原因腳本無法正常工作(您的答案可能有所不同,請參閱我標記爲正確答案的Teyam's答案)。