0

下面的代碼工作正常,讓我自己的Google+用戶屬性:中授權谷歌Apps腳本訪問硬盤文件

// Google oAuth 
function getAuth(service, scopes) { 
    var oAuthConfig = UrlFetchApp.addOAuthService(service); 
    oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken? scope="+scopes); 
    oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken"); 
    oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); 
    oAuthConfig.setConsumerKey("anonymous"); 
    oAuthConfig.setConsumerSecret("anonymous"); 
    return {oAuthServiceName:service, oAuthUseToken:"always"}; 
} 

function test_API_Key() { 
    var gPlusAuth = getAuth("plus", "https://www.googleapis.com/auth/plus.me"); 
    var url = "https://www.googleapis.com/plus/v1/people/me?key=" + API_KEY; 
    var httpResponse = UrlFetchApp.fetch(url, gPlusAuth); 
    Logger.log(httpResponse); 
    } 

當我用來訪問有關我的谷歌雲端硬盤文件的元數據相同的方法,我碰上HTTP錯誤403和「未配置訪問」。以下是代碼。我究竟做錯了什麼?

function getFileMetaData(fileId) { 
    var driveAuth = getAuth("drive", "https://www.googleapis.com/auth/drive"); 
    var url = "https://www.googleapis.com/drive/v2/files/" + 
     documentID + "?key=" + API_KEY; 
    var response = UrlFetchApp.fetch(url, driveAuth); 
    Logger.log(response); 
} 

回答

-1

從谷歌開發者網站摘自[1]

在一個高層次,所有的應用程序遵循相同的基本授權圖案:

  • 註冊在谷歌開發者控制檯應用程序。
  • 要求用戶授予他們Google帳戶中數據的訪問權限。
  • 如果用戶同意,您的應用程序將請求並接收憑據以訪問Drive API。
  • 刷新憑證(如有必要)。
<script type="text/javascript"> 
    var CLIENT_ID = '<YOUR_CLIENT_ID>'; 
    var SCOPES = [ 
     'https://www.googleapis.com/auth/drive.file', 
     'https://www.googleapis.com/auth/userinfo.email', 
     'https://www.googleapis.com/auth/userinfo.profile', 
     // Add other scopes needed by your application. 
    ]; 

[1] https://developers.google.com/drive/web/about-auth