2017-09-12 46 views
-1

我想實現的東西是在谷歌應用程序腳本描述here與谷歌應用程序腳本收存箱。但我沒有足夠的經驗,所以看看有什麼不對。所以任何幫助將不勝感激。上傳文件使用save_url從Dropbox的API

function Gmail2Dropbox() { 

    var dropboxTOKEN = 'XXXxxx'; 
    var folderName = "Folder";  
    var folder = DriveApp.getFoldersByName(folderName).next(); 
    var files = folder.getFiles();  

    while (files.hasNext()){ 
    var file = files.next(); 
    var fileName = file.getName(); 
    var fileid = file.getId(); 
    var path = 'path/'+fileName; 
    var dropboxurl = 'https://api.dropboxapi.com/1/save_url/auto/'+path; 
    var fileurl = 'https://drive.google.com/uc?export=download&id=' + fileid; 
    Logger.log(dropboxurl); 

    var options = {  
     "Authorization": 'Bearer '+ dropboxTOKEN, 
     "method" : 'POST', 
     "url" : fileurl 
    }; 

    var response = UrlFetchApp.fetch(dropboxurl, options); 
    Logger.log(response); 
    } 
} 

我收到以下錯誤信息:

Request failed for https://api.dropboxapi.com/1/save_url/auto/path returned code 400. 
Truncated server response: {"error_description": "No auth function available for given request", 
"error": "invalid_request"} (use muteHttpExceptions option to examine full response). (line 25, file "Gmail2Dropbox") 
+0

什麼是錯誤您收到? – Ritz

+0

對!我正在將它添加到問題 –

回答

1

我得到了一個有效的解決方案:

function Gmail2Dropbox() {  
    var folderName = "Folder";  
    var folder = DriveApp.getFoldersByName(folderName).next(); 
    var files = folder.getFiles();   

    while (files.hasNext()){ 
    var file = files.next();    
    var response = send2dropbox(file); 
    Logger.log(response); 
    } 
} 

    function send2dropbox(file) { 
    var dropboxTOKEN = 'XXXxxx'; 

    var path = 'somePath/' + file.getName(); 
    var dropboxurl = 'https://api.dropboxapi.com/2/files/save_url'; 
    var fileurl = 'https://drive.google.com/uc?export=download&id=' + file.getId(); 

    var headers = { 
    'Authorization': 'Bearer ' + dropboxTOKEN, 
    'Content-Type': 'application/json' 
    }; 
    var payload = { 
    "path": path, 
    "url": fileurl 
    } 
    var options = {  
    method: 'POST', 
    headers: headers, 
    payload: payload  
    }; 

    var response = UrlFetchApp.fetch(dropboxurl, options); 
    return response; 
} 
+0

當我使用此代碼我得到一個'請求失敗https://api.dropboxapi.com/2/files/save_url返回碼400截斷服務器響應:錯誤調用API函數「files/save_url」:請求正文:無法將輸入解碼爲JSON(使用muteHttpExceptions選項檢查完整響應)「任何想法? – superhero

+0

您是否通過創建Dropbox應用程序來獲取Dropbox令牌? –

相關問題