[英]Facebook login using Parse not working
我正在嘗試使用Parses SDK進行Facebook的單點登錄,但是當我按下登錄按鈕時出現此錯誤:
哦哦 發生錯誤:錯誤Domain = 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),trypedRefreshDate:0001-12-30 00:00:00 +0000,權限:(null)>}
按下按鈕時的代碼與Parse教程中的代碼幾乎相同
- (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應用程序。
有線索嗎?
我在設備上遇到了同樣的問題。 同樣的錯誤。
修復很簡單:設置->隱私-> Facebook->並在那里檢查您的應用狀態。
我在一台設備(iPhone 5S)上遇到了同樣的問題。 設置->隱私-> Facebook是正確的。 我還有其他設備以及iPhone sim都運行良好。
無論如何,我嘗試重新啟動並沒有解決問題,還刪除了該應用程序並重新安裝。
最終有效的方法如下:
奇怪的錯誤。
希望這對某人有幫助。
請參閱下面的答案。 有時,奇怪的是,開關已打開。 它有助於在“系統偏好設置”中使用Facebook重新登錄。
傳遞一個空的權限數組NSArray * permissionsArray = @ [];
確保在您的Facebook應用程序控制台中設置了權限。
我從解析后端刪除了我的FB訪問密鑰和機密,效果很好。
(解析錯誤?)
請確保您在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];
}
要使其在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()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.