gpt4 book ai didi

android - 检查 facebook session 是否有效

转载 作者:搜寻专家 更新时间:2023-11-01 08:03:06 25 4
gpt4 key购买 nike

我正在尝试检查 facebook session 是否有效,它可能会发生,因为:

  1. session 已过期。
  2. 用户已注销。
  3. 用户删除了我的 Facebook 应用程序。
  4. 用户不再存在。

我有这个方法来检查用户是否仍然登录:

public boolean isLoggedIn() {
Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
return true;
} else {
return false;
}
}

但即使用户从他的 Facebook 帐户中删除了我的应用程序,它也会返回 true。

当我调用任何 facebook 请求时,我从 facebook 得到以下响应:

08-14 12:20:40.671: I/facebookActivity(2322): Result: {Response:  responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 190, errorType: OAuthException, errorMessage: Error validating access token: User 343343434 has not authorized application 45345345.}, isFromCache:false}

在那之后,我向 facebook 发出的每个请求都会得到不同的响应:

08-14 12:21:09.707: I/facebookActivity(2322): Result: {Response:  responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}

我可以检查 JSON 是否有错误并尝试创建一个新的 Facebook session ,但我想在发出任何 Facebook 请求之前避免这样做,或者至少在 Activity 开始检查 session 是否有效时调用它一次。

有没有一种正常的方法来检查 session 是否有效?

最佳答案

当您从缓存信息(通常为您自动完成)打开 session 时,不会向 Facebook 发出服务器请求,这就是 session 对象本身不知道它是否仍然有效的原因。

知道访问 token 已失效(无论出于何种原因)的唯一方法是发出图形请求。您可以在每次打开新 session 时发出图形请求(到/me 甚至/me/permissions),或者您可以让您的应用程序正常运行,并执行概述的错误处理步骤 here当发生错误时(请注意, session /访问 token 可能随时失效 - 即使在运行您的应用程序的过程中 - 因此无论如何您都应该进行适当的错误处理)。

关于android - 检查 facebook session 是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18227937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com