0

Facebook SDK 3.1 のリリースにより、iOS 6 で投稿用の Facebook ネイティブ ダイアログを起動するクラスが追加されました。

以下はそのコードです。

[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {
 //Print Error
                    }];

エラー Domain=com.facebook.sdk Code=7 "The operation could not be completed. (com.facebook.sdk error 7.)" UserInfo=0x1e5e0930 {com.facebook.sdk:NativeDialogReasonKey=com.facebook.sdk:NativeDialogNotSupported

そこで、まず次のコードを使用してログインしてから、FBNativeDialog を起動しようとしました。ただし、Safari で Facebook の許可ウィンドウのOKボタンを押した場合、完了ハンドラには入りません。

AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
appDelegate.session = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"publish_stream", nil]];


                    [appDelegate.session openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
                        switch (status) {
                            case FBSessionStateOpen:
                            [FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {
                        NSLog(@"Dialog Error= %@",error);
                    }];
                                break;

                            default:
                                break;
                        }
                    }];
4

1 に答える 1

1

SafariのFacebook許可画面のOKボタンを押したとき

ネイティブ共有ダイアログを使用するには、iOS 6 デバイス/シミュレーターで Facebook アカウントをセットアップする必要があります。これを行うと、ネイティブの iOS 権限ダイアログも表示されるので、ログインするためにアプリを Safari に切り替える必要はありません。http://facebook.stackoverflow.com/a/12681352/1712979に対する私の同様の応答を参照してください。

于 2012-10-01T21:30:28.373 に答える