使用 Parse 登录 Facebook 不起作用
Posted
技术标签:
【中文标题】使用 Parse 登录 Facebook 不起作用【英文标题】:Facebook login using Parse not working 【发布时间】:2013-04-16 17:51:40 【问题描述】:我正在尝试使用 Parses SDK 为 Facebook 进行单点登录,但是当我按下登录按钮时出现此错误:
哦哦。发生错误:Error Domain=com.facebook.sdk Code=2 "The 操作无法完成。 (com.facebook.sdk 错误 2。)“ 用户信息=0x1d5bac20 com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginDisallowedWithoutError, com.facebook.sdk:ErrorSessionKey=, expireDate:(null),refreshDate:(null),尝试RefreshDate:0001-12-30 00:00:00 +0000,权限:(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 应用程序已全部设置完毕。
有什么线索吗?
【问题讨论】:
请看这个问题***.com/questions/15831610/… 【参考方案1】:我在我的设备上遇到了同样的问题。同样的错误。
修复很简单:设置 -> 隐私 -> Facebook -> 并在那里检查您的应用状态。
【讨论】:
您需要在您的设备(iPhone/模拟器)上执行此操作 对于那些仍然收到错误的人,请检查应用程序的捆绑ID是否与在Facebook应用程序中输入的相同。 太棒了。不知何故,隐私设置为“关闭”,这导致了错误。必须警告用户...!【参考方案2】:我在一台设备(iPhone 5S)上遇到了同样的问题。设置 -> 隐私 -> Facebook 是正确的。 我有其他设备以及 iPhone sim 都可以正常工作。
无论如何,我尝试重新启动并没有解决问题,还删除了应用程序并重新安装。
最终奏效的是:
-
在设置 -> 隐私 -> 下关闭应用程序的访问权限
脸书。
尝试从应用程序登录 FB。 (当然失败了)。
在设置 -> 隐私 -> 下重新启用应用设置的访问权限
脸书。
尝试从现在成功的应用登录 FB。
奇怪的错误。
希望这对某人有所帮助。
【讨论】:
【参考方案3】:请看下面的答案。有时奇怪的是,开关打开了。它有助于在系统偏好设置中使用 Facebook 重新登录。
【讨论】:
【参考方案4】:传递一个空的权限数组 NSArray *permissionsArray = @[];
确保您的权限已在您的 Facebook 应用程序控制台中设置。
【讨论】:
【参考方案5】:我从解析后端删除了我的 FB 访问密钥和秘密,它运行良好。
(解析错误??)
【讨论】:
【参考方案6】:请确保您在 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];
【讨论】:
【参考方案7】:要使其在 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()
【讨论】:
以上是关于使用 Parse 登录 Facebook 不起作用的主要内容,如果未能解决你的问题,请参考以下文章