我做了一些测试,结果我发现与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的任何见解?
答案 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
并且返回的令牌将有更长的到期时间(可能是具有更长期限或新令牌的相同令牌,您应该处理这两种情况)