私はの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];
}
}
}
}];
}
を同じ問題を持ちます。 –