【问题标题】:Asp.Net file upload to dropbox via api?Asp.Net 文件通过 api 上传到保管箱?
【发布时间】:2016-07-18 08:52:34
【问题描述】:

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

    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 都不是难事。我必须解决这个问题。

【问题讨论】:

  • 如果是非静态类,尝试实例化HigLabo.Net.AuthorizeInfo
  • @Oluwafemi 我在哪里可以使用 HigLabo.Net.AuthorizeInfo。我不能使用 HigLabo.Net.AuthorizeInfo 在上面使用。它不是 dll 或命名空间。

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


【解决方案1】:

Nemiro.OAuth 最初是为 ASP.NETWebFormsMVC)创建的。

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

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

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

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

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

【讨论】:

  • 谢谢。我已经用你的网站问过你了。现在我下载了你的 dll 和例子。所以它工作正常。
  • @AlekseyNemiro 如何将默认目录从 Apps/Box 更改为其他内容
  • @RajanGoswami,这是在 Dropbox 网站上的应用程序设置中完成的。 Register your own application on the Dropbox website,您将能够进行设置。将获取的 ID 和密钥用于 API。对不起,迟到的答案。我没有看到通知。
【解决方案2】:

我用 Nemiro.OAuth 解决了我的问题。下面的例子很有帮助。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2013-08-17
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多