2016-07-18 137 views
0

我正在尝试使用HighLabo进行Dropbox通信。但它给出了一个错误。这是我对Asp.Net文件通过API上传到Dropbox?

ai = ocl.GetAuthorizeInfo(); 

行代码

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/"); 
    } 

我越来越 值不能为空的错误。有谁知道这个问题?

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

+0

尝试实例'HigLabo.Net.AuthorizeInfo'如果它是一个非静态 – Oluwafemi

+0

类@Oluwafemi我在哪里可以使用HigLabo.Net.AuthorizeInfo。我无法使用HigLabo.Net.AuthorizeInfo。它不是一个DLL或命名空间。 –

回答

1

Nemiro.OAuth是摆在首位的ASP.NET的WebFormsMVC)创建的。

下面的链接,你可以找到的Dropbox的WebForms例如: https://github.com/alekseynemiro/nemiro.oauth.dll/tree/master/examples/DropBoxWebForms

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

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

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

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

+0

谢谢。我已经问过你的网站了。现在我下载了你的dll和例子。所以它工作正常。 –

+0

@AlekseyNemiro如何从Apps/Box更改默认目录以获得其他内容 –

+1

@RajanGoswami,这是在Dropbox网站的应用程序设置中完成的。 [在Dropbox网站上注册您自己的应用程序](https://www.dropbox.com/developers/apps),您就可以进行设置。使用获得的ID和秘密密钥进行API。 对不起,对于迟到的答案。我没有看到通知。 –