ios - 通过 Facebook 登录不适用于我的 iOS 应用
问题描述
我的应用程序有一个设置,用户可以通过电子邮件和密码输入或通过他们的 Facebook 登录凭据正常登录。
为了通过 Facebook 处理登录,我通过 Cocoapods 使用 Facebook 依赖项。我最近也更新了这些依赖项。
Podfile 片段:-
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
我的 Podfile.lock 片段:-
- FacebookCore (0.5.0):
- Bolts (~> 1.9)
- FBSDKCoreKit (~> 4.37)
- FacebookLogin (0.5.0):
- Bolts (~> 1.9)
- FacebookCore (~> 0.5)
- FBSDKCoreKit (~> 4.37)
- FBSDKLoginKit (~> 4.37)
- FacebookShare (0.5.0):
- Bolts (~> 1.9)
- FacebookCore (~> 0.5)
- FBSDKCoreKit (~> 4.37)
- FBSDKShareKit (~> 4.37)
- FBSDKCoreKit (4.38.1):
- Bolts (~> 1.9)
- FBSDKLoginKit (4.38.1):
- FBSDKCoreKit
- FBSDKShareKit (4.38.1):
- FBSDKCoreKit
用户可以使用电子邮件/电话号码密码凭据通过 Safari 浏览器通过 Facebook 网站使用他们的 Facebook 凭据登录
当用户尝试通过 iPhone 中的 Facebook 应用程序登录时,就会出现问题。
这些是手头问题的屏幕截图。
第一个屏幕截图显示了通过我的应用程序的 facebook 登录页面:-
下一个屏幕截图显示了尝试通过 facebook 应用程序登录时出现的错误:-
在寻找解决方案时,我遇到了这个帖子:- 类似的帖子
根据这篇文章,我检查了我的 info.plist。似乎有效
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb{facebook-app-id}</string>
</array>
</dict>
</array>
...
<key>FacebookAppID</key>
<string>{facebook-app-id}</string>
<key>FacebookDisplayName</key>
<string>{facebook-display-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
<string>whatsapp</string>
</array>
这是我在登录视图控制器中用于 Facebook 相关登录的代码:-
func facebookLoginButtonClicked(sender: UIButton) {
let loginManager = LoginManager()
loginManager.logIn(readPermissions: [ReadPermission.publicProfile, ReadPermission.email], viewController : self) { loginResult in
switch loginResult {
case .failed(let error):
print(error)
case .cancelled:
print("User cancelled login")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
if let token = accessToken.authenticationToken ?? nil{
let params = ["access_token": token as AnyObject, "account_type": PineSimpleData.getOnboardingAccountType()! as AnyObject]
let url = "/user/connect/facebook"
self.socialLogin(params: params, url: url)
}
}
}
}
AppDelegate 中的代码片段:-
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
....
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
var handled = FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
if handled {
return true
}
....
return handled
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options) {
return true
}
....
return true
}
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
到目前为止,通过应用程序和 Facebook 网站登录都可以正常工作。我应该如何处理这个错误?facebook 开发者部分有强制规定吗?如果是这样,我应该在 facebook 开发人员页面中进行哪些更改?任何帮助表示赞赏。
解决方案
以下是基本步骤:-
1.Open https://developers.facebook.com and select your app
2.Settings > Basic > Add Platform
3.Now select iOS from the window and add your Bundle ID and rest of the information and click on Save changes.
同样的问题,您可以在这里查看:- iOS Facebook 登录“应用程序配置不允许给定 URL”
推荐阅读
- asp.net-core - 在 ASP.NET Core 中以编程方式获取 Swagger URL
- c++ - C ++:使用结构检查字符串中括号和括号的顺序是否平衡
- nlp - 如何使用 BERT/GPT-2 进行释义生成
- c++ - 如何在 QtQuick 2 中显示 rgb 数据?
- ansible - ansible-在所有服务器上运行第一个任务并移至第二个任务
- python-3.x - 启动项目时抓取缺少的教程文件夹
- java - 用Java中的图像更新SQL的速度极慢
- android-studio - 调试时Android Studio'无效的方法ID'
- python - 按钮隐藏/显示
- c++ - 如何从 cmd 但在同一窗口中运行 exe 文件?