2017-09-12 15 views
-1

Googleアプリスクリプトでhereと記載されているものを実装しようとしています。しかし、私は十分な経験がないので、何が間違っているかを見てください。だから、どんな助けにも感謝します。Dropbox APIからsave_urlを使用してGoogle Appsスクリプトを使用してDropboxにファイルをアップロード

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トークンを取得しましたか? –

関連する問題