我正在尝试使用Parses SDK为Facebook进行单点登录,但是当我按下登录按钮时出现此错误:
哦,哦。发生错误:错误域= com.facebook.sdk代码= 2“ 操作无法完成。 (com.facebook.sdk错误2.)“ 的UserInfo = 0x1d5bac20 {com.facebook.sdk:ErrorLoginFailedReason = com.facebook.sdk:SystemLoginDisallowedWithoutError, com.facebook.sdk:ErrorSessionKey =, expirationDate:(null),refreshDate:(null),attemptsRefreshDate:0001-12-30 00:00:00 +0000,permissions:(null)>}
按下按钮时的代码几乎与Parse's tutorial
中的代码相同- (IBAction)loginButtonTouchHandler {
// The permissions requested from the user
NSArray *permissionsArray = @[ @"user_about_me", @"user_birthday"];
// Login PFUser using Facebook
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
[_activityIndicator stopAnimating]; // Hide loading indicator
if (!user) {
if (!error) {
NSLog(@"Uh oh. The user cancelled the Facebook login.");
} else {
NSLog(@"Uh oh. An error occurred: %@", error);
}
} else if (user.isNew) {
NSLog(@"User with facebook signed up and logged in!");
} else {
NSLog(@"User with facebook logged in!");
}
}];
}
我的facebook应用程序全部都设置好了。
任何线索?
答案 0 :(得分:9)
我的设备上遇到了同样的问题。同样的错误。
修复很简单:设置 - >隐私 - > Facebook - >并检查你的应用程序状态。
答案 1 :(得分:4)
我在一台设备上遇到了同样的问题(iPhone 5S)。设置 - >隐私 - > Facebook是对的。 我有其他设备和iPhone sim一起工作正常。
无论如何,我尝试重新启动但没有解决问题,也删除了应用并重新安装。
最终起作用的是以下内容:
奇怪的错误。
希望这有助于某人。
答案 2 :(得分:2)
见下面的答案。有时很奇怪,开关打开了。它有助于在系统偏好设置中重新登录Facebook。
答案 3 :(得分:0)
传递空权限数组NSArray * permissionsArray = @ [];
确保您的Facebook应用控制台中设置了您的权限。
答案 4 :(得分:0)
我从解析后端删除了我的FB访问密钥和秘密,它工作得很好。
(Parse bug ??)
答案 5 :(得分:0)
请告知您在AppDelegate.m
添加- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
}
并添加
[FBSDKAppEvents activateApp];
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSDKAppEvents activateApp];
}
答案 6 :(得分:0)
要使其适用于 Swift 3.1 和 iOS 10.3.1 ,请确保您的应用代理中有以下方法:
仅适用于Swift 3.1:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let configuration = ParseClientConfiguration {
$0.applicationId = "XXXXX"
$0.clientKey = "XXXXXX"
$0.server = "https://yourserverparse.."
}
Parse.initialize(with: configuration)
PFFacebookUtils.initializeFacebook(applicationLaunchOptions: launchOptions)
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
而不是:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
var isHandled:Bool;
if #available(iOS 9.0, *) {
isHandled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[.sourceApplication] as! String!, annotation: options[.annotation])
} else {
// Fallback on earlier versions
isHandled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
}
return isHandled
}
而不是:
func applicationDidBecomeActive(_ application: UIApplication) {
FBSDKAppEvents.activateApp()
}