Facebook访问令牌无法扩展

时间:2012-02-08 09:04:05

标签: android facebook single-sign-on token

我正在使用facebook android sdk,我刚从github下载。

我知道访问令牌只在非常有限的时间内有效,并且每次应用程序启动时都需要扩展,如文档中所述。 https://developers.facebook.com/docs/mobile/android/build/#extend_token

这有两个问题:
1)当令牌已经过期时(仅一两个小时之后!),函数extendAccessTokenIfNeeded()不会更新!

2)当我绕过第一个问题时,另一个问题是无法找到扩展令牌所需的意图。

SDK源代码中的

Intent intent = new Intent();
intent.setClassName("com.facebook.katana",
                    "com.facebook.katana.platform.TokenRefreshService");
...
ResolveInfo resolveInfo =
            context.getPackageManager().resolveActivity(intent, 0);
if (resolveInfo == null) {
        return false;
}

resoveInfo在这里总是为空。

有关如何扩展令牌的任何想法?我不想在toked到期时调用authenticate()函数。这将完全破坏用户体验!

THX 西蒙

1 个答案:

答案 0 :(得分:2)

facebook android sdk与刷新令牌服务建立连接以扩展访问令牌,但该服务是Facebook android应用程序的一部分,这意味着您的应用程序用户需要先安装本机Facebook。

替代:

  1. 您可以使用中描述的图形api / auth / access_token developers.facebook.com/docs/offline-access-deprecation /

  2. 我尝试来自facebook iOS SDK的请求,它可以工作:

  3. 获取api.facebook.com/method/auth.extendSSOAccessToken?access_token =

    或以json格式。 获取api.facebook.com/method/auth.extendSSOAccessToken?format=json&access_token =

    请将https://添加到上面的所有网址。