2

我正在尝试在我的 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 时遇到过类似问题的任何人能给我一些解决此问题的建议,我将不胜感激。如果需要,很乐意提供任何进一步的信息。

提前致谢,

安德鲁

4

0 回答 0