我正在尝试在我的 Windows Phone 应用程序中实现DropNet 库GetAccessTokenAsync
,但在调用该方法时出现错误。
第 1 步:从 Dropbox 获取 oauth 令牌
public void ConnectToDropbox()
{
_client = new DropNetClient(API_KEY, API_SECRET);
_client.UseSandbox = true;
// Get Request Token (oauth token) from Dropbox
_client.GetTokenAsync(
(userLogin) =>
{
// Authorise app with Dropbox
var url = _client.BuildAuthorizeUrl();
browser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(browser_LoadCompleted);
browser.Navigate(new Uri(url));
},
(error) =>
{
Debug("Error: GetTokenAsync");
});
}
这似乎工作正常并返回一个 oauth 授权码。浏览器导航到的 URL 是 https://www.dropbox.com/1/oauth/authorize?oauth_token=TSLEY7lLS8K2Mmnr
第 2 步:将 oauth 令牌转换为可用的 Dropbox API 令牌
void browser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
Debug("Callback URL: " + e.Uri.AbsoluteUri);
if (e.Uri.AbsolutePath == "/1/oauth/authorize")
{
//The User has logged in!
//Now to convert the Request Token into an Access Token
_client.GetAccessTokenAsync(
(response) =>
{
Debug("User is logged in");
LoadContents();
},
(error) =>
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
Debug("Error getting access token (GetAccessTokenAsync)");
MessageBox.Show(error.Message);
});
});
}
else
{
//Probably the login page loading, ignore
}
}
该GetAccessTokenAsync
方法在运行时抛出以下异常:
System.Windows.ni.dll 中发生了“System.Net.WebException”类型的异常,并且在托管/本机边界之前未处理
应用内消息框显示: 'DropNet.Exceptions.DropboxException' 类型的异常被抛出。
DropboxException 对象的所有属性如下:
响应: RestSharp.RestResponse
状态码: 未授权
堆栈跟踪:
数据: System.Collections.ListDictionaryInternal
基本异常: DropNet.Exceptions.DropboxException:引发了“DropNet.Exceptions.DropboxException”类型的异常。
内部异常:
类型: DropNet.Exceptions.DropboxException
状态码未经授权是否相关?我正在使用 Dropbox 提供的适当 API 密钥和秘密。
如果在使用 DropNet 时遇到过类似问题的任何人能给我一些解决此问题的建议,我将不胜感激。如果需要,很乐意提供任何进一步的信息。
提前致谢,
安德鲁