2013-04-23 4 views
7

私はのFacebookをウェブサイトのリンクを共有するために統合しています。私はこれを達成するためにFeed Dialogを使用しています。私はこのチュートリアルに従います:
https://developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/FBWebDialogs(Facebook SDK 3.5)で正常に投稿した後のresultURL

私はログインしてFacebookに投稿できましたが、投稿が成功したときにメッセージを追加したかったのです。チュートリアルにはこれが組み込まれていますが、私が投稿するたびに、ユーザーがキャンセルをクリックしたときに表示されるメッセージである「ユーザーはストーリー公開をキャンセルしました。私は、デバッガで、ハンドラが受け取ったパラメータresultURLが成功した投稿でも常にnilであることを確認しました。

最初は私のFacebook Appの構成上の問題でしたが、私はテストをすることにしました。フレームワークに付属のRPSSampleを開き、RPSFriendsViewController.mビューコントローラのclickInviteFriendsメソッドのpresentRequestsDialogModallyWithSessionコールに補完ハンドラを追加しました。そこには成功した投稿にはresultURLもありました。

私には何か不足していますか?

私は3.5 SDKのバージョンは非常に新しいですけど、私はFacebookのウェブダイアログを通じて掲示した後、有効なresultURLのparamを取得しなければならないのマニュアルに従って、私はそれはバグかどうか、私は」かどうかわからないんだけど一部のコールバックやハンドラがどこかにありません。

この場合、フィードウェブダイアログへの私の呼び出しです。これは、チュートリアルで来るものに比べて軽微な変更を持っている私たちは、代わりに、このための修正を持っているとすぐに押し出される

- (void)publish: (EntityToShare *)entityToShare { 
NSMutableDictionary *params = 
[NSMutableDictionary dictionaryWithObjectsAndKeys: 
entityToShare.link, @"link", 
nil]; 

// Invoke the dialog 
[FBWebDialogs presentFeedDialogModallyWithSession:nil 
             parameters:params 
              handler: 
^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { 
    if (error) { 
     // Error launching the dialog or publishing a story. 
     NSLog(@"Error publishing story."); 
    } else { 
     if (result == FBWebDialogResultDialogNotCompleted) { 
      // User clicked the "x" icon 
      NSLog(@"User canceled story publishing."); 
     } else { 
      // Handle the publish feed callback 
      NSDictionary *urlParams = [self parseURLParams:[resultURL query]]; 
      if (![urlParams valueForKey:@"post_id"]) { 
       // User clicked the Cancel button 
       NSLog(@"User canceled story publishing."); 
      } else { 
       // User clicked the Share button 
       NSString *msg = [NSString stringWithFormat: 
            @"Posted story, id: %@", 
            [urlParams valueForKey:@"post_id"]]; 
       NSLog(@"%@", msg); 
       // Show the result in an alert 
       [[[UIAlertView alloc] initWithTitle:@"Result" 
              message:msg 
              delegate:nil 
            cancelButtonTitle:@"OK!" 
            otherButtonTitles:nil] 
        show]; 
      } 
     } 
    } 
}]; 
} 
+0

を同じ問題を持ちます。 –

答えて

9

(それは実際には簡単です)。

編集:これは今SDKのリリースで修正されてい

3.5.1 は、ここでそれをチェックアウト:https://developers.facebook.com/ios/

+0

私はDiegoと同じ問題を抱えています。あなたはいつそれを修正する予定ですか? – user498388

+1

素晴らしい!とても素早く答えてくれてありがとう。これは私を夢中にさせていた。つまり、これはサーバーの問題ですか、それともSDKに問題がありますか? –

+1

私はこれがとても緊急なことを待っています、私のネイティブコードに影響しないAPIバグだけでしょうか? – ValentiGoClimb

関連する問題