验证访问令牌时出错:该会话无效,因为用户已注销

问题描述

|| 我的代码:
 var fbWebContext = FacebookWebContext.Current;
 if (fbWebContext.IsAuthorized())
 {
      var fb = new FacebookWebClient(fbWebContext);
      dynamic result = fb.Get(\"/me\");

      name.Text = result.name;
 }

 dynamic result = fb.Get(\"/me\");
抛出:   (OAuthException)验证访问令牌时出错:会话无效,因为用户已注销。 我应该如何更改代码以防止这种情况?     

解决方法

        您可以请求\“ offline_access \”扩展权限。这将阻止此消息,并且用户不必每次都登录。     ,        您确实无法阻止它,您只需要捕获异常并对其进行处理。好吧,您可以通过在FB Javascript SDK中进行一些等效调用来检测到错误的会话(过期,注销,用户更改密码等),并在客户端上重新登录,以防止出现这种情况。客户端,然后再调用服务器端代码。 如果查看Facebook C#SDK源代码,则可以看到IsAuthorized()= IsAuthenticated()。 IsAuthenticated所做的只是检查您是否有一个会话,以及该会话的到期时间是否还没有过去。会话可能已被用户注销(服务器未知)而无效。 您还可以在这里找到其他Facebook OAuth例外。最好将上述代码包装在try / catch中,并通过再次提示用户登录并与他们进行新的会话来处理异常。     ,        那么CanvasAnthorizer对象呢?这个对象是否可以确保用户已登录并具有正确的权限?     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...