将谷歌应用程序脚本连接到保管箱
我想能够将文件从驱动器发送到保管箱,但我有一些问题。 我收到一条消息以进入授权网址:
请访问以下URL,然后重新运行脚本:https://www.dropbox.com/1/oauth/authorize?oauth_token=xxxxxxx
我这样做,应用程序被添加到Dropbox(或者至少我收到一条消息说),但是如果我重新运行脚本,我会再次收到相同的消息。 如果我查看连接到Dropbox的应用程序列表,则不会显示这个列表...我尝试遵循以下步骤:尽可能从OAuthConfig迁移到OAuth1库...我做错了什么?
function Gmail2Dropbox() {
var service = getDropboxService();
if (service.hasAccess()){
var folderName = "foldername";
var folder = DriveApp.getFoldersByName(folderName).next();
var files = folder.getFiles();
while (files.hasNext()){
var file = files.next();
var fileName = file.getName();
Logger.log(fileName);
var options = {
"oAuthServiceName" : "dropbox",
"oAuthUseToken" : "always",
"method" : "put",
"payload" : file.getBlob().getBytes(),
"contentType" : file.getMimeType()
};
var response = UrlFetchApp.fetch("https://api-content.dropbox.com/1/files_put/sandbox/" + folderName + "/" + fileName, options);
Logger.log(response);
}
}
else {
var authorizationUrl = service.authorize();
Logger.log('Please visit the following URL and then re-run the script: ' + authorizationUrl);
}
}
function getDropboxService() {
var dropboxKey = "dropKey";
var dropboxSecret = "dropSecret";
var service = OAuth1.createService('dropbox');
service.setRequestTokenUrl("https://api.dropbox.com/1/oauth/request_token");
service.setAuthorizationUrl("https://www.dropbox.com/1/oauth/authorize");
service.setAccessTokenUrl("https://api.dropbox.com/1/oauth/access_token");
service.setConsumerKey(dropboxKey);
service.setConsumerSecret(dropboxSecret);
service.setCallbackFunction('authCallback');
service.setPropertyStore(PropertiesService.getScriptProperties());
return service;
}
function authCallback(request) {
var service = getDropboxService;
var isAuthorized = service.handleCallback(request);
if (isAuthorized) {
return HtmlService.createHtmlOutput('Success! You can close this page.');
} else {
return HtmlService.createHtmlOutput('Denied. You can close this page');
}
}
查看IFTTT他们有一个叫做Maker Channel的渠道。 IFTTT将数百个服务连接在一起,使服务之间的连接变得轻松。 有了这个,你不需要OAuth,而且使用起来更容易。 他们没有Drive to Dropbox的直接支持,所以你必须使用他们的Maker Channel,这是一个API。 一旦将小应用程序Maker Channel设置为Dropbox,您可以通过POST API调用将文件上传到Maker Channel。 它使用起来非常简单,我为它制作了一个功能。
function sendToMaker(makerKey,eventName,value1,value2,value3){
var url = 'https://maker.ifttt.com/trigger/' + eventName + '/with/key/' + makerKey;
var payload = {
'value1' : value1,
'value2' : value2,
'value3' : value3
};
var options = {
'method' : 'POST',
'payload':payload,
};
return UrlFetchApp.fetch(url,options);
};
当您在Dropbox方面设置IFTTT上的applet时,您需要映射文件URL,名称和目标。 我将File URL映射到“Value1”,名称为“Value2”,目标为“Value3”。 请记住正确地格式化目标,只需看看示例IFTTT。
一旦applet设置好了,你就可以将你的文件从Drive发送到Dropbox。
链接地址: http://www.djcxy.com/p/69083.html