5月1日之后弃用后,offline_access如何工作?

时间:2012-03-29 17:22:38

标签: facebook sdk access-token

我做了一些测试,结果我发现与Facebook的文档相矛盾。 https://developers.facebook.com/roadmap/offline-access-removal/

如果我们启用"弃用离线访问权限:"并请求offline_access,在移动客户端,我们会自动获得有效期为60天的令牌,而无需升级SDK。 Facebook似乎让客户更容易,无需升级。这就是在Facebook上说的。 "将不再要求迁移到此功能的应用程序使用offline_access。他们将获得长期访问令牌,如果用户暂时没有使用该应用程序将会到期。 "一段时间"一段时间"没有记录。

如果我升级SDK,则不会触发extendToken方法,因为该令牌有效期为60天。如果我们强制扩展令牌,我们从Facebook得到以下错误,我不知道这意味着什么。

Error Domain=facebookErrDomain Code=10 "The operation couldn’t be completed. (facebookErrDomain error 10.)" UserInfo=0x1404bb70 {request_args=(
        {
        key = method;
        value = "auth.extendSSOAccessToken";
    },
        {
        key = sdk;
        value = ios;
    },
        {
        key = "sdk_version";
        value = 2;
    },
        {
        key = "access_token";
        value = AAACiLiBjLHABAOo3NZCSSLlRddFZCQUsky0q9sogtzHIFGpNNoeYUqtt2X2QUvxMg8AwsQqSLP3oe0cxUoLIXwVZC3xDGuBC3QOvFgELwZDZD;
    },
        {
        key = format;
        value = json;
    }
), error_code=10, error_msg=The access token was not obtained using single sign-on}

如果我们没有请求" offline_access",则令牌将在2小时后到期。

你的观察是什么?任何想法?来自Facebook的任何见解?

1 个答案:

答案 0 :(得分:1)

that document中标记为'如果您以前没有要求offline_access'的部分说明如何将该2小时令牌换成60天令牌:(请注意,将来2小时和60天的值可能会发生变化)

https://developers.facebook.com/roadmap/offline-access-removal/#extend_token

只需访问

https://graph.facebook.com/oauth/access_token?             
        client_id=APP_ID&
        client_secret=APP_SECRET&
        grant_type=fb_exchange_token&
        fb_exchange_token=EXISTING_ACCESS_TOKEN 

并且返回的令牌将有更长的到期时间(可能是具有更长期限或新令牌的相同令牌,您应该处理这两种情况)