DropNet DropBox登录,如何在控制台应用程序中以编程方式执行?

Ste*_*ger 5 .net c# dropbox dropbox-api dropnet

题:

我在这里使用DropBox csharp API:https:
//github.com/dkarzon/DropNet

从单元测试,以及这里唯一的工作样本 https://github.com/dkarzon/DropNet/blob/master/DropNet.Samples/DropNet.Samples.Web/Default.aspx.cs

我认为它的工作原理如下:

DropNet.DropNetClient client = new DropNet.DropNetClient(strApiKey, strAppSecret);

DropNet.Models.UserLogin login = client.GetToken();
client.UserLogin = login;

var accountInfo = client.AccountInfo();
str = accountInfo.quota_info.quota.ToString();
Run Code Online (Sandbox Code Playgroud)

探测器是,它会在accountinfo上引发异常.(System.Net.HttpStatusCode.Unauthorized)一切正常,我得到登录(usertoken&usersecret).

我认为我的问题是示例应用程序的这一部分:

var url = _client.BuildAuthorizeUrl(Request.Url.ToString() + "?dropboxcallback=1");
Response.Redirect(url);
Run Code Online (Sandbox Code Playgroud)

它重定向到Dropbox进行登录...我没有Web应用程序,所以我没有URL ...

我所拥有的是一个控制台应用程序,应该每天晚上自动备份我的数据库作为服务,对于它来说当然非常糟糕,需要webbrowser和用户必须输入电子邮件/用户名+密码.

如何通过直接提供硬编码的用户名和密码来登录?

如果我使用示例应用程序,那么它可以工作,但这需要在Web上输入用户名和密码,这对于控制台应用程序来说是很大的时间......

Gam*_*ing 6

据我所知,从其他API(Facebook,谷歌,堆栈交换等),您将不得不将您的用户重定向到Dropbox的网页,在那里它将授予您使用它的帐户执行的权限.

所以一般来说,没有webbrower就不可能实现这一目标.否则你将不得不执行非常脏的黑客攻击Dropbox的权限系统.

请在google上查看"OAuth 2.0授权流程".这是我在雅虎发现的一个图表,它显示了它的工作原理:

OAuth 2.0流程


Ste*_*ger 0

这是可能的,使用 SharpBox - 经过测试,有效。
需要手动一次性获取AccessToken,之后就可以省略登录页面并使用保存的AccessToken。

http://www.jayway.com/2012/02/06/unboxing-dropbox-and-sharpbox-2/

神奇的线条是:

Globals.DropBox.Token = AppLimit.CloudComputing.SharpBox.StorageProvider.DropBox.DropBoxStorageProviderTools
.ExchangeDropBoxRequestTokenIntoAccessToken(
      Globals.DropBox.config
    , Globals.DropBox.AppKey, Globals.DropBox.AppSec
    , Globals.DropBox.requestToken
);
Run Code Online (Sandbox Code Playgroud)