使用Dropbox API中的save_url将文件上传到Google Dropbox的Dropbox [英] upload file to dropbox with google app script using save_url from Dropbox API

查看:200
本文介绍了使用Dropbox API中的save_url将文件上传到Google Dropbox的Dropbox的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图实现所描述的内容这里在谷歌应用程序脚本。但我没有足够的经验,所以看看有什么不对。所以任何帮助将不胜感激。

I'm trying to implement what is described here in a google app script. But i don't have enough experience so see what is wrong. So any help will be appreciated.

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")


推荐答案

一个工作解决方案:

I got a working solution:

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;  
}

这篇关于使用Dropbox API中的save_url将文件上传到Google Dropbox的Dropbox的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆