Tag: dropbox api

寻找node.js模块为不同的存储提供者提供统一的文件API

我使用Node.js来托pipe一个Web服务器。 服务器将与不同的第三方存储提供商进行通信,例如Box,Dropbox,Googledrive,amazon s3,skydrive,ftp服务器等。服务器将从文件下载或上传文件到存储提供商。 我正在使用OAuth模块来实施授权过程并获得auth_token和auth_secret。 OAuth模块统一了不同服务器的授权界面。 OAuth模块封装了oauth服务器的API,并提供了统一和友好的界面。 使用OAuth模块,我不需要在代码中调用oauth服务器的API。 这是相当不错的,并节省了我的工作很多。 从不同的存储提供商下载/上传文件时遇到一些困难。 我必须为每个存储服务器编写不同的实现。 比如调用APi把file upload到盒子,调用s3 API把file upload到s3等。不知是否有一些节点模块封装了存储提供者的所有API,就像授权API的OAuth模块一样工作。 下面的伪代码表示我期望这种模块的工作原理。 我想这个名字是'存储'。 var storage = require("storage"); // This is the storage library I'm looking for. var s3 = storage.s3(s3_aouth_token_and_secret); // The declaration for the s3_aouth_token_and_secret is omitted for simplification. var box = storage.box(box_aouth_token_and_secret); var dropbox = storage.dropbox(dropbox_aouth_token_and_secret); var local_file_name = "./report.docx"; […]

程序化的Dropbox共享

是否有任何select通过Dropbox api,即REST版本,以编程方式行使共享选项,或有人发明或发现一个独特的方法来使用unix或nodejs命令行工具? curl等等 我基本上希望通过脚本/命令行邀请人们进入保pipe箱文件夹,并通过脚本/命令行接受邀请。 现在,要接受邀请,您必须点击2个链接,一个在电子邮件中,然后在Dropboxnetworking界面中。 而为了邀请,必须login保pipe箱,点击你想分享的文件夹,然后input一个电子邮件,然后点击一个button。 我想在简单的terminal上做所有这些事情。

在NodeJS中closuresDropbox Datastore API

我正在尝试在NodeJS上使用Dropbox Datastore API。 我可以连接并使用它,但我似乎无法停止并让程序正常退出。 我从https://www.dropbox.com/static/api/1/dropbox-datastores-0.1.0-b3.js中提取文件,并将其放在我的本地目录中。 所以如果你运行以下(有效的信用),那么它永远不会退出。 var dropbox = new require('./dropbox.js') var client = new dropbox.Client ({ key:'apikey', secret:'apisecret', token:'useroauthtoken', uid:'useruid' }); var datastoreManager = client.getDatastoreManager(); datastoreManager.openDefaultDatastore(function(error,datastore){ if(error) console.log(error); var table = datastore.getTable('exampletable'); table.insert({hello:'newman',inthepool:true}); });

使用dropboxjs用oauthauthentication客户端2.服务器呢?

我是Oauth和服务器端的新手,所以请耐心等待。 我有一个web应用程序,用dropbox-jsvalidation用户。 一切都很简单。 应用程序使用dropbox-js的client.authenticate函数,如果用户通过身份validation,应用程序会自动redirect到初始页面,在那里执行身份validationcallback。 从那一刻起,我知道我很高兴地使用Dropbox进行身份validation,并且可以使用应用程序的Dropbox目录进行操作。 我有一个公共node.js服务器,目前什么都不做。 我想要做的是: 一旦客户端通过身份validation,请致电我的服务器,并告诉用户已通过身份validation 如果用户不存在于服务器数据库中,则为其创build用户数据库的条目(我不需要详细说明来执行此操作)。 如果存在,则发回用户的相关数据。 我怎样才能以安全的方式做到这一点? 我的意思是,服务器如何告诉用户是一个有效的Dropbox用户? 服务器是否应该使用用户凭证对Dropbox进行身份validation? 这些情况下的工作stream程是什么?

错误:未能在会话中find请求令牌

我在主要的护照回购中发现了一些问题,但是,我认为这主要与这个特定的策略有关,因为我能够使用护照 – 谷歌 – 奥法策略成功validation身份。 Error: failed to find request token in session at Strategy.OAuthStrategy.authenticate (/home/glug/application/node_modules/passport-dropbox/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:124:54) at attempt (/home/glug/application/node_modules/passport/lib/passport/middleware/authenticate.js:243:16) at Passport.authenticate (/home/glug/application/node_modules/passport/lib/passport/middleware/authenticate.js:244:7) at callbacks (/home/glug/application/node_modules/express/lib/router/index.js:161:37) at param (/home/glug/application/node_modules/express/lib/router/index.js:135:11) at pass (/home/glug/application/node_modules/express/lib/router/index.js:142:5) at Router._dispatch (/home/glug/application/node_modules/express/lib/router/index.js:170:5) at Object.router (/home/glug/application/node_modules/express/lib/router/index.js:33:10) at Context.next (/home/glug/application/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Context.actions.pass (/home/glug/application/node_modules/passport/lib/passport/context/http/actions.js:77:8) 我使用redis作为会话存储,但是,即使在消除之后,它仍然失败,出现相同的错误消息。 var DropboxStrategy = require('passport-dropbox').Strategy; app.configure(function(){ app.set('port', config.express.port); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); […]

不使用基于浏览器的oauth身份validation,将文件从节点j传输到Dropbox

我正在从heroku运行一个基于nodejs + express的api服务器,并使用dropbox-js库。 这是我想要做的: 用户点击特定的API端点并启动进程。 通过节点进程生成一些文本文件并将其保存在服务器上 将这些文件传输到我自己使用我自己的凭据(用户和Dropbox应用程序)的保pipe箱。 当随机用户需要这样做的时候,永远不会有这样的情况。这是一个团队帐户,这是一个内部工具。 绊倒我的部分是,Dropbox想要打开一个浏览器窗口,并获得我的许可连接到应用程序。 问题是我显然不能在heroku实例上运行进程时点击button。 有没有办法让我完全授权在节点上访问应用程序? 我觉得我可以使用一个幻灯片过程来点击button – 但它似乎太复杂了,我想避免它,如果可能的话。 这是我的validation码: // Libraries var Dropbox = require('dropbox'); var DROPBOX_APP_KEY = "key"; var DROPBOX_APP_SECRET = "secret"; var dbClient = new Dropbox.Client({ key: DROPBOX_APP_KEY, secret: DROPBOX_APP_SECRET, sandbox: false }); dbClient.authDriver(new Dropbox.Drivers.NodeServer(8191)); dbClient.authenticate(function(error, client) { if (error) { console.log("Some shit happened trying to authenticate […]