Google云端硬盘 - 如何从Google API清空垃圾箱

时间:2015-01-15 12:59:57

标签: google-drive-api

我搜索并找到了这个解决方案here

function doGet() {
  try{
  authorize();    
  var key = "YOUR DEVELOPER KEY";
  var params = {method:"DELETE",
                oAuthServiceName: "drive",
                oAuthUseToken: "always"
               };  
  UrlFetchApp.fetch("https://www.googleapis.com/drive/v2/files/trash?key="+key,     params);  
  }
  catch(error)
  {
    MailApp.sendEmail("<some email>", "EMPTY TRASH BIN ERROR:<br>"+error);    
    return;
  } 
}

function authorize() {
  var oauthConfig = UrlFetchApp.addOAuthService("drive");
  var scope = "https://www.googleapis.com/auth/drive";
  oauthConfig.setConsumerKey("anonymous");
  oauthConfig.setConsumerSecret("anonymous");
  oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?     scope="+scope);
  oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken");    
  oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");  

我“修复了”

MailApp.sendEmail("<some email>", "EMPTY TRASH BIN ERROR:<br>", error);

在我的邮件中收到错误,并将我的开发人员密钥(有些像这样的ZHjkMQP3dNiA24LmOvZ5WZ2v -_- APMcbEtHD6q)放在var密钥中,但我得到了授权错误:

异常:错误OAuth:

2 个答案:

答案 0 :(得分:0)

也许API参考会帮助您https://developers.google.com/drive/v2/reference/ 要将文件发送到回收站,您需要使用Files:trash(请参阅Google Drive API参考) 这需要您需要移动到垃圾箱的文件的fileId。它的方法是POST而不是DELETE。 所以也许这样的事情可以解决

  var params = {method:"POST",
                oAuthServiceName: "drive",
                oAuthUseToken: "always"
               };  
  UrlFetchApp.fetch("https://www.googleapis.com/drive/v2/files/{THE fileId of the file to be trasshed}/trash?key="+key,     params);  
  }

这应该将文件移动到废纸篓。如果您想永久删除文件,则需要使用Files:delete(请参阅Google驱动API参考) 所以,如果您只是将“垃圾”替换为网址中的{FileId},它就可以解决。

UrlFetchApp.fetch(“https://www.googleapis.com/drive/v2/files/ {要删除的文件的FileId}?key =”+ key,params);

希望这有帮助。

答案 1 :(得分:0)

Google Empty Trash API包含一种简单的方法,可以直接从页面清空垃圾