使用实时 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。
谢谢。
正如我添加的评论中所述,"过期令牌"错误很可能是由模拟器上的日期/时间设置不正确引起的。