Asp.Net文件通过api上传到dropbox?

时间:2016-07-18 08:52:34

标签: c# asp.net dropbox dropbox-api

我正在尝试使用HighLabo进行Dropbox通信。但它给出了一个错误。这是我的代码

    private const string App_key = "my_app_key";
    private const string App_secret = "my_app_secret";
    OAuthClient ocl = null;
    HigLabo.Net.AuthorizeInfo ai = null;

    public void UploadFile(byte[] content, string filename, string target)
    {

        ocl = DropboxClient.CreateOAuthClient(App_key, App_secret);
        ai = ocl.GetAuthorizeInfo();
        string RequestToken = ai.RequestToken;
        string RequestTokenSecret = ai.RequestTokenSecret;
        string redirect_url = ai.AuthorizeUrl;
        AccessTokenInfo t = ocl.GetAccessToken(RequestToken, RequestTokenSecret);
        string Token = t.Token;
        string TokenSecret = t.TokenSecret;

        DropboxClient cl = new DropboxClient(App_key, App_secret, Token, TokenSecret);

        HigLabo.Net.Dropbox.UploadFileCommand ul = new HigLabo.Net.Dropbox.UploadFileCommand();
        ul.Root = RootFolder.Sandbox;
        ul.FolderPath = target;
        ul.FileName = filename;
        ul.LoadFileData(content);

        Metadata md = cl.UploadFile(ul);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        //string filename = Path.GetFullPath(FileUpload1.FileBytes);
        //byte[] bytes = System.IO.File.ReadAllBytes(filename); 
        UploadFile(FileUpload1.FileBytes, "sundas.jpg", "/Apps/synch/");   
    }

我到了

上的值不能为空错误
ai = ocl.GetAuthorizeInfo();

线。有谁知道这个问题?

我也尝试使用Nemiro和Dropnet库。在Nemiro,我可以使用winforms。但是nemiro和dropnet都不适合webforms。我必须解决这个问题。

2 个答案:

答案 0 :(得分:1)

Nemiro.OAuth 首先是 ASP.NET WebForms MVC )创建的。

您可以在以下链接中找到 Dropbox WebForms 的示例: https://github.com/alekseynemiro/nemiro.oauth.dll/tree/master/examples/DropBoxWebForms

在用户授权后,您应该保存访问令牌。

通常,将访问令牌保存到数据库。示例使用会话。但会话不是存储访问令牌的好地方。

如果将访问令牌保存到数据库或至少是文本文件,则可以使用它进行查询,而无需重新授权。

我认为您与 HighLabo 存在同样的问题。您需要在身份验证后保存访问令牌,并将其用于对 API 的所有请求。

答案 1 :(得分:0)

我用Nemiro.OAuth解决了我的问题。以下示例非常有用。

https://github.com/alekseynemiro/nemiro.oauth.dll/tree/master/examples/DropBoxWebForms