使用DropNet生成的访问令牌与DropNetRT

时间:2015-04-09 20:20:48

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

我正在使用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

现在,我尝试使用UserLogin只使用我的访问令牌作为令牌而没有UserSecret,但是客户端引发了异常,所以我猜这不是正确的方法。

我该怎么做?有没有办法使用此库创建具有访问令牌的客户端,还是必须使用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。

1 个答案:

答案 0 :(得分:0)

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

我不确定我之前是否使用过生成的令牌,但却无法理解为什么它不起作用。