更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录

Posted

技术标签:

【中文标题】更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录【英文标题】:Can't login with Facebook SDK on cordova iOS after changing permissions 【发布时间】:2015-11-24 22:13:01 【问题描述】:

我正在使用带有此插件的 Cordova 最新版本https://github.com/jeduan/cordova-plugin-facebook4...在第一个版本中,我仅获得了以下权限:

id,email,birthday

在第二个版本中,我获得了以下权限:

id,email,birthday,gender,first_name,last_name

导致以下错误:

domain=com.facebook.sdk.login code=304

但如果我删除了该应用程序并重新安装它,它就可以正常工作!

那么,我现在该怎么办?生产中的应用程序,并且所有用户都无法登录,并且要求所有用户删除该应用程序并重新安装它真的很难!有什么想法可以发布另一个带有补丁的版本来解决这个问题吗?

我认为这里有一个解决方案:ios facebook sdk 4.0 login error code 304,但我不是一个好的 Objective C 开发人员,不知道如何在插件中实现它!

【问题讨论】:

【参考方案1】:

我点击了这个链接:ios facebook sdk 4.0 login error code 304

并制作了这个补丁: https://github.com/mabdelfattah/cordova-plugin-facebook4/commit/e55b974ee62a6c98293fadda688e0382b5e2d45c#diff-c05c80840d093f0d14fb66a56466e521

【讨论】:

【参考方案2】:

问题是因为cordova facebook 插件调用facebookConnectPlugin.getLoginStatus() 缓存了FB 响应。它不允许我们在该调用中强制服务器跳闸(而在 FB javascript SDK 中它可以)。

当我收到 304 时,我通过调用 facebookConnectPlugin.login() 解决了这个问题。这会强制服务器在重新登录时重新加载 FB 权限。

【讨论】:

以上是关于更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8.4.1 上使用 Cordova 无法打开链接(和点击)

更改 Cordova Geolocation iOS 的显示名称

移动后iOS上的cordova-plugin-media-with-compression似乎无法播放音频文件

Cordova/Ionic 2 相机权限问题 iOS 10.2.1

重命名后新的 PhoneGap / Cordova iOS 项目将无法运行

切换应用 iOS 无法更改默认启动图标