4

私が実装した Facebook のコードを使用する

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
    NSArray *permissions = [[NSArray alloc] initWithObjects:
    @"publish_actions", 
    nil];

    return [FBSession openActiveSessionWithPermissions:permissions
                                      allowLoginUI:allowLoginUI
                                 completionHandler:^(FBSession *session,
                                                     FBSessionState state,
                                                     NSError *error) {
   NSLog(@"error %@", error);                                     
    [self sessionStateChanged:session
                        state:state
                        error:error];
                                 }];
}

初めてのログインであり、loginUIが機能するため(ユーザーをFBに送信し、許可を与えるように求めます)、その後返されますが、completionHandlerブロックが実行されることはありません。アプリと灘に戻るだけです。

4

3 に答える 3

4

少し遅れましたが、念のため誰かがチェックに来ます...

openActiveSession からインスタンス メソッド openWithCompletionHandler に切り替えるとうまくいきました。

于 2013-05-25T03:26:05.430 に答える
4

Facebook SDKのログイン フローの実装に従っていると思いますが、すべてを説明しているため、そのセクションをもう一度読む価値があります。デリゲートで openURL メソッドと handleOpenURL メソッドを処理したことを確認してください。また、openSessionWithAllowLoginUIがほとんど常にNOを返すことを確認してください

于 2012-09-20T15:20:03.630 に答える
0

公式ドキュメントより

ハンドラ

... ブロックが提供されている場合、FBSession オブジェクトは、セッションの状態が変化するたびにブロックを呼び出します。

Open Graph のセットアップを解決し、これらの関数 [FBSession.activeSession handleOpenURL:url] や [FBSession.activeSession handleDidBecomeActive] などの FB の素晴らしいサンプル コードを研究することで、この問題を修正しました。

于 2012-12-22T02:03:02.400 に答える