【发布时间】: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