使用实时 SDK 获取“过期令牌”.示例代码是否正确

本文关键字:代码 是否 过期令牌 令牌 实时 SDK 获取 过期 | 更新日期: 2023-09-27 18:35:14

我正在使用 http://msdn.microsoft.com/en-us/library/dn631823.aspx 中的示例代码在执行任何 OneDrive 操作之前执行登录。当我最初编码时它似乎可以工作,但现在我已经在休息后回到了它,任何(说)读取文件夹的尝试都会给我错误:

提供的访问令牌已过期。

我用来登录的代码是:

        currentSession = null;
        try
        {
            var authClient = new LiveAuthClient();
            LiveLoginResult result = await authClient.LoginAsync(new string[] { "wl.signin", "wl.skydrive" });
            if (result.Status == LiveConnectSessionStatus.Connected)
            {
                currentSession = result.Session;
                Debug.WriteLine("... succeeeded");
            }
            else
                Debug.WriteLine("... not connected, status is {0}", result.Status);
        }
        catch (LiveAuthException ex)
        {
            // Display an error message.
            Debug.WriteLine("LiveAuthException: {0}", ex.Message);
        }
        catch (LiveConnectException ex)
        {
            // Display an error message.
            Debug.WriteLine("LiveConnectException: {0}", ex.Message);
        }

其中 currentSession 被声明为类中的私有变量,然后在文件夹代码中使用:

            LiveConnectClient liveClient = new LiveConnectClient(currentSession);
            LiveOperationResult operationResult = await liveClient.GetAsync("me/skydrive");
            dynamic result = operationResult.Result;

让我有点担心的是,文档说:

创建一个 LiveAuthClient 对象并调用 InitializeAsync 方法来初始化 Live SDK。然后使用 wl.signin 和 wl.skydrive 作用域调用 LoginAsync 方法,以启用单一登录并允许用户访问 OneDrive。

但是示例代码没有对 InitializeAsync 进行任何引用,并且调用似乎有变化,因此不清楚我应该使用哪一个(如果有的话)。

这是针对通用应用程序的,尽管目前我只是在处理WP8.1 C#/XAML部分。我使用的是实时 SDK 5.6。

谢谢。

使用实时 SDK 获取“过期令牌”.示例代码是否正确

正如我添加的评论中所述,"过期令牌"错误很可能是由模拟器上的日期/时间设置不正确引起的。