2016-07-18 165 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。 對不起,對於遲到的答案。我沒有看到通知。 –