簡體   English   中英

使用Parse的Facebook登錄無法正常工作

[英]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都運行良好。

無論如何,我嘗試重新啟動並沒有解決問題,還刪除了該應用程序並重新安裝。

最終有效的方法如下:

  1. 在設置->隱私-> Facebook下,關閉該應用的訪問權限。
  2. 嘗試從應用程序登錄FB。 (當然會失敗)。
  3. 在設置->隱私-> Facebook下,重新啟用對應用設置的訪問權限。
  4. 嘗試從現在成功的應用程序登錄FB。

奇怪的錯誤。

希望這對某人有幫助。

請參閱下面的答案。 有時,奇怪的是,開關已打開。 它有助於在“系統偏好設置”中使用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.1iOS 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM