5

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

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

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

谢谢

4

3 回答 3

6

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

这是一个概述: http ://www.dropbox.com/developers/start/core

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

编辑:

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

此链接非常清楚地列出了顺序:

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

一旦你有一个客户端对象,你需要弹出一个浏览器并让用户登录到他们的用户帐户的下拉框。通过获取 url 在该链接的第 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; }
于 2011-12-08T00:28:53.727 回答
1

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

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

Dropbox API 旨在链接到每个用户的 Dropbox。听起来您希望它链接到您的(开发人员拥有的)Dropbox,目前不支持。唯一的选择是通过您的开发环境中的身份验证流程获取令牌,然后以某种方式将该令牌嵌入您的应用程序代码中。对嵌入的令牌保密将是一项挑战。此外,该嵌入式固定令牌将绑定到您的 Dropbox 帐户,并且您必须非常小心,切勿取消该应用程序与您帐户的链接(通过https://www.dropbox.com/account#applications),这将使令牌无效。

于 2013-04-10T03:43:31.647 回答
1

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

于 2015-02-12T20:02:47.177 回答