如果你不使用限制登录,你就必须通过 iOS 版图谱 API 处理所有图谱API调用。 访问口令将失效。如需详细了解iOS版 Facebook SDK 相关变更以及如何继续使用 Facebook 登录 SDK,请访问博客。
如果你这两年接过iOS Facebook SDK登录,想必下面这张图你应该见过。
看到上图的红色警告,你第一反应是什么?
——是不是我接的有问题?没错,我也一直是这么以为的。
但是,有两个奇怪的点:
1、点击“登录”后可以正常登录。
2、我试了几台手机都会看到这个警告,但我同事的手机上看不到这条警告(App目前在开发阶段,还未上线)。
虽然可以正常登录,但是得把这个问题搞清楚,如果上线后用户也能看到这条“奇怪”的警告,岂不是很劝退用户(比如 怀疑我们的程序不安全,或者让用户感到我们很不专业)。总不能就这么上线赌一把上线后没警告吧。
我尝试了各种方法:升级SDK、查看官方文档、github Issues、问各种AI、古法搜索(传统的Google搜索),检查Facebook开发者后台配置,都没有解决这个问题。
AI只会告诉你,是因为用户没有同意idfa授权,Facebook降级为limited登录,你需要使用最新的对接方式,不然无法登录,巴拉巴拉...
可是我们已经使用最新的登录方式了,并且可以正常登录。现在的问题是为什么会有这个红色警告!
至于为什么有的手机上有警告,有的手机没有警告?最初我们以为是缓存问题。于是,我们还尝试了,卸载重装、清理Facebook缓存(Safari里面)、Facebook个人主页里取消登录授权等。现状没有改变,之前没警告的手机还是没警告,之前有警告的手机还是有警告。
我甚至想过,这就是一个H5网页,它是如何知道我们接入的对不对的?
——检查打开链接时传递进来的参数?
——或许这个警告就是一个写死的文案?如果是写死的文案,为什么有的手机展示,有的手机不展示?
加班折腾了一晚上,我突然悟了。
——难道只有开发者看得到,普通用户看不到?
这个项目Facebook开发者后台只绑定了我一个人的Facebook账号,所以无论我拿哪个手机,只要登录的是我的Facebook账号,就会看到警告提示,而我同事看不到,是因为他的账号没有绑到Facebook开发者后台。为了验证我的猜想,我赶紧找了另外一个还在加班的(苦逼)同事,用他的Facebook账号登录了一下我们的应用,果然没有这个警告。
至此,全网都没人回答的“为什么会有这个红色警告”案,宣布告破了:
——如果授权登录时,你使用了Facebook开发者账号登录,就会看到这个红色警告,普通用户是看不到这条警告的。出现这条警告并不代表你的程序接入的有问题,它仅仅是一条纯静态的“友情提示”文案。
当我知道这个真相时,一句“卧槽”油然而生。当即就在心里对Facebook疯狂输出,怎么会有如此逆天的设计!关键官方文档上也没有相关的说明,官方文档上只提到了要注意新的接入方式需要后端一起配合调整,它完全没有提到这条警告。
Facebook本来是一片好心,想在明显的位置,给大家一个“友情提示”,却酿成了更大的误导!它但凡加一行小字“该提示仅开发者可见”或在官方文档上对此予以说明,也不至于让开发者担心受怕了。
技术细节本文不做展开,可自行阅读官方文档或问AI解决。
AI擅长解决技术问题,但像本文这个案例,AI解决不了,因为它不是技术问题,它是经验(踩坑)问题,而当全网都没有这个经验沉淀时,AI也就无能为力了。
当我这篇博客发出去后,可能再过一段时间,你再把开头的图片丢给AI,AI它就能解决你的困惑了。所以,“有了AI,博客和论坛会消失吗?——会也不会。总得有人以身试错,AI才能蒸馏出更高级的智慧。
iOS 版 Facebook 登录 SDK 变更内容
developers.facebook.com/blog/post/2…
iOS受限登录开发者文档
developers.facebook.com/documentati…
iOS首先登录常见问题
developers.facebook.com/documentati…