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;
}
}];