【问题标题】:Using Dropbox Generated Access Token with DropNetRT将 Dropbox 生成的访问令牌与 DropNetRT 结合使用
【发布时间】:2015-04-09 20:20:48
【问题描述】:

我正在使用 DropNetRT 库,但我找不到仅使用 Dropbox 帐户中我的应用页面中生成的访问令牌来创建工作 DropNetClient 的方法。

如果我使用我的用户密码和用户令牌,它可以工作:

public static async Task UploadStuff()
{
    DropNetClient client = new DropNetClient("APIKey", "AppSecret");
    client.SetUserToken(new UserLogin() { Secret = "mySecret", Token = "myToken" });
    // Then upload the data with the client
}

但是,我只想使用我生成的访问令牌,而不是我的 UserToken 和 UserSecret。

看起来像这样,只是为了确定:

jfjfDkFkdfikAAAAAAAAAADkfkDJSJFJISjofdjFjjfoJOIDJSOjsFKPFKPEJKfjiksfd3_thD

现在,我尝试使用仅使用我的访问令牌作为令牌且没有 UserSecret 的 UserLogin,但客户端抛出了异常,所以我想这不是正确的方法。

我该怎么做?有没有办法用这个库创建一个带有访问令牌的客户端,还是我必须使用 HttpClient 手动上传文件?如果是这样,我真的不知道该怎么做。

谢谢!

塞尔吉奥

编辑:这是我尝试过的(它不起作用):

public static async Task TestUploadGeneratedToken()
{
    // Create the client
    DropNetClient client = new DropNetClient("APIKey", "AppSecret");
    client.SetUserToken("MyGeneratedAccessToken", String.Empty);

    // Get a test file
    StorageFile tempFile = await ApplicationData.Current.TemporaryFolder.CreateFileAsync("test.txt", CreationCollisionOption.OpenIfExists);
    await FileIO.WriteTextAsync(tempFile, "This is a simple test file");

    // Convert the file to a byte array
    IRandomAccessStream stream = await tempFile.OpenAsync(FileAccessMode.Read);
    stream.Seek(0);
    byte[] bytes = new byte[stream.Size];
    await stream.ReadAsync(bytes.AsBuffer(), (uint)stream.Size, InputStreamOptions.None);

    // Upload the file
    await client.Upload(CrashReportPath, "tokenTest.txt", bytes);
}

Upload 方法抛出 DropboxException。

【问题讨论】:

    标签: c# xaml windows-runtime windows-phone-8.1 win-universal-app


    【解决方案1】:

    看起来不错。尝试将秘密设置为 string.empty 而不是 null?

    我不确定我以前是否使用过生成的令牌,但不知道为什么它不起作用。

    【讨论】:

    • 你好,谢谢你的回答。我试过了,但上传文件时仍然出现异常,我用代码示例更新了我的问题。我希望这能有所帮助:) 如果我用我的 UserToken 和 UserLogin(我从标准登录过程中得到的那些)用 UserLogin 实例调用 SetUserToken,它工作正常。它只是不适用于 GeneratedAccessToken 。感谢您的帮助!
    • 看起来问题是令牌是 oauth2 但 DropNetRT 目前只执行 Oauth1。抱歉,需要更新 Oauth2 的库,但旧的 DropNet 可以使用 Oauth2 令牌。
    • 谢谢,我很期待尝试 DropNetRT 的新更新 :) 同时我将继续使用我的 UserToken 和 UserSecret 登录,我只是不知道他们多久将持续,或者如果我可以使用这些凭据执行的 API 调用数量有限制。
    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2015-09-27
    • 2014-03-07
    相关资源
    最近更新 更多