6

openActiveSessionWithPublishPermissionsを使用してFacebookに公開しようとして いるので、ユーザーがログインしていない場合は、最初にサインインしてから、io6Facebookネイティブダイアログを使用してメッセージを投稿する必要があります。

私が見つけたのは、ログインできますが、完了ハンドラーが呼び出されないことです。

もう1つ気付いたのは、ログインボタンをもう一度クリックすると、次のエラーFBSessionStateClosedLoginFailedで完了ハンドラーが呼び出されることです。

私はこの投稿を参照しましたが、それでも私の問題の解決策は見つかりませんでした。

NSArray *permissions = [NSArray arrayWithObjects:@"publish_stream", nil];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:
^(FBSession *session, FBSessionState status, NSError *error) 
{

  switch (status) {

                  case FBSessionStateOpen:
                        {
                          [FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {}];
                        }
                        break;   
                   default:
                        break;
                    }
                }];
4

2 に答える 2

5

メソッドを実装したことを確認してくださいhandleOpenUrl

-(BOOL)application:(UIApplication *)application 
           openURL:(NSURL *)url 
 sourceApplication:(NSString *)sourceApplication
        annotation:(id)annotation {

     return [[FBSession activeSession] handleOpenURL:url]; 

}
于 2012-12-28T06:57:20.280 に答える
0

これを追加する必要があります:

[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil
  image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {
  if (result==FBNativeDialogResultCancelled) {
    UIAlertView     *alert=[[UIAlertView alloc]initWithTitle:@"Error"
       message:@"Sending Cancelled" delegate:self cancelButtonTitle:@"OK" 
       otherButtonTitles: nil];
   [alert show];
 } else if (result==FBNativeDialogResultSucceeded) {
   UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Succeed" 
     message:@"succeed" delegate:self cancelButtonTitle:@"OK" 
     otherButtonTitles: nil];
  [alert show];
}***}***];
于 2012-10-11T05:11:11.657 に答える