我正在尝试将DropNet library实施到我的Windows Phone应用中,但在调用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
状态代码未经授权是否相关?我正在使用适当的API密钥和Dropbox提供的秘密。
如果在使用DropNet时遇到类似问题的任何人在解决此问题时能给我一些建议,我将不胜感激。如果需要,很高兴提供任何进一步的信息。
提前致谢,
安德鲁