我做了一些测试,发现结果与 Facebook 的文档相矛盾。https://developers.facebook.com/roadmap/offline-access-removal/
如果我们启用“弃用离线访问:”并在移动客户端请求离线访问,我们会自动获得有效期为 60 天的令牌,而无需升级 SDK。看来 Facebook 为客户提供了更方便的服务,无需升级。 Facebook 上是这么说的。 “迁移到此功能的应用程序将不再被要求进行离线访问。它们将获得长期访问令牌,如果用户一段时间没有使用该应用程序,该令牌就会过期。”没有记录“一段时间”是多长时间。
如果我升级SDK,则不会触发extendingToken方法,因为令牌的有效期为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 有什么见解吗?
标记为“如果您之前没有要求进行离线访问”的部分该文件解释了如何将 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
并且返回的令牌将具有更长的有效期(它可能是具有更长有效期的相同令牌或新令牌,您应该处理这两种情况)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)