Dropbox api“USER TOKEN”,“USER SECRET”

时间:2011-12-08 00:16:54

标签: c# .net dropbox dropbox-api

我正在尝试使用DropNet Client(Dropbox CLient API的C#版本)使用Dropbox Api操作文件。这是我的代码:

    var client = new DropNetClient(APP_KEY,APP_SECRET);
    client.Delete("/Public/test.txt");

但似乎我还需要“用户忘记”和“用户秘密”。我应该在哪里获得这两个? 的更新 我只需要操纵我自己的文件夹和共享文件夹中的文件。我已经从myApp页面获得APP_KEY和APP_SECRET,在哪里可以获得“USER TOKEN”和“USER SECRET”

感谢

3 个答案:

答案 0 :(得分:6)

当您在Dropbox网站上创建应用时,他们会为您提供APP_KEY(标识您的应用)和APP_SECRET(如密码)。您实际上是使用投递箱注册您的应用程序,以便与他们的服务集成。

以下是概述: http://www.dropbox.com/developers/start/core

点击该页面中的“我的应用”链接。您必须使用您的投递箱帐户创建或登录。之后,您可以创建一个应用程序。为其命名和说明,选择访问文件夹或完整内容,然后单击“确定”。注册您的应用后,他们会给您钥匙和秘密。

修改

关于特定的C#DropNetClient,您应该将“APP_KEY”和“APP_SECRET”替换为该站点的appKey和appSecret字符串。

此链接非常明确地列出了序列:

https://github.com/dkarzon/DropNet

_client = new DropNetClient("API KEY", "API SECRET");

例如:

// replace with given app key and secret from site
_client = new DropNetClient("8oz68cz267t52fz", "mavm58321hrhejy");

拥有客户端对象后,您需要弹出浏览器并让用户使用其用户帐户登录到删除框。通过获取网址,该链接的第2步中包含了该内容。

var url = _client.BuildAuthorizeUrl();

现在用户已登录,您可以通过同步或异步方法获取用户访问令牌。用户令牌启用“记住我”功能,而无需用户重新验证,尤其是您的应用程序存储他们永远不应该执行的帐户/通行证。这是一个证明他们已经使用投递箱进行身份验证的令牌。从该链接的第3步开始:

// Sync
var accessToken = _client.GetAccessToken(); //Store this token for "remember me" function

// Async
_client.GetAccessTokenAsync((accessToken) =>
    {
        //Store this token for "remember me" function
    },
    (error) =>
    {
        //Handle error
    });

请注意,var accessToken实际上是DropNet.Models.UserLogin对象。该对象包含:

    public string Token { get; set; }
    public string Secret { get; set; }

答案 1 :(得分:1)

用户令牌/秘密是用户通过基于浏览器的授权页面让您的应用访问其Dropbox时获得的内容,如下所述:

https://www.dropbox.com/developers/core/authentication

Dropbox API旨在链接到每个用户的Dropbox。听起来您希望它链接到您当前不支持的(开发者拥有的)Dropbox。唯一的选择是通过您的deve环境中的auth流程获取令牌,然后以某种方式将该令牌嵌入您的应用程序代码中。保持嵌入式令牌的秘密将是一个挑战。此外,该嵌入式固定令牌将与您的Dropbox帐户绑定,您必须非常小心,永远不要将该应用与您的帐户取消关联(通过https://www.dropbox.com/account#applications),这会使令牌无效。

答案 2 :(得分:1)

有一种新方法可以为您自己的帐户获取令牌而无需浏览所有OAuth内容。在“应用程序设置”页面上,您将找到“生成的访问令牌”按钮。这会为您自己的帐户生成一个令牌。