1

Parses SDK を使用して Facebook のシングル サインオンを作成しようとしていますが、ログイン ボタンを押すと次のエラーが表示されます。

ええとああ。エラーが発生しました: エラー Domain=com.facebook.sdk Code=2 "The operation could not be completed. (com.facebook.sdk error 2.)" UserInfo=0x1d5bac20 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook .sdk:SystemLoginDisallowedWithoutError、com.facebook.sdk:ErrorSessionKey=、有効期限: (null)、refreshDate: (null)、AttendedRefreshDate: 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アプリをすべて設定しました。

手がかりはありますか?

4

7 に答える 7

9

私のデバイスでも同じ問題がありました。同じエラー。

修正は簡単でした: [設定] -> [プライバシー] -> [Facebook] -> そこでアプリのステータスを確認します。

于 2013-05-31T13:21:27.773 に答える
4

1 つのデバイス (iPhone 5S) で同じ問題が発生しました。設定 -> プライバシー -> Facebook は正しかった。私はiPhone simと一緒に他のデバイスを持っていましたが、すべて正常に機能しました。

とにかく、再起動を試みましたが、問題は解決しませんでした。また、アプリを削除して再インストールしました。

最終的に機能したのは次のとおりです。

  1. [設定] -> [プライバシー] -> [Facebook] でアプリのアクセスをオフにします。
  2. アプリからFBにログインしてみてください。(もちろん失敗します)。
  3. [設定] -> [プライバシー] -> [Facebook] で、アプリ設定へのアクセスを再度有効にします。
  4. 成功したアプリから FB にログインしてみてください。

奇妙なエラー。

これが誰かに役立つことを願っています。

于 2013-12-02T16:11:32.263 に答える
2

以下の回答を参照してください。ときどき不思議なスイッチが入ります。システム環境設定で Facebook に再ログインするのに役立ちます。

于 2013-09-25T21:28:52.980 に答える
0

解析バックエンドから FB アクセス キーとシークレットを削除したところ、うまく機能しました。

(解析バグ??)

于 2015-01-17T14:28:11.383 に答える
0

空のパーミッション配列 NSArray を渡します *permissionsArray = @[];

Facebook アプリ コンソールで権限が設定されていることを確認します。

于 2014-10-08T21:23:34.630 に答える
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()
}
于 2017-04-10T14:48:25.907 に答える
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];
}
于 2015-05-21T10:42:00.013 に答える