HelloFacebookSample のコードを使用してアプリからリンクを共有していますが、実際に共有が行われたかどうかを知る方法がわかりません。これを共有に使用します:
FBAppCall *appCall = [FBDialogs presentShareDialogWithLink:urlToShare
name:@"Hello Facebook"
caption:nil
description:@"The 'Hello Facebook' sample application showcases simple Facebook integration."
picture:nil
clientState:nil
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if (error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
NSLog(@"Results: %@",results);
}];
そしてそれはうまくいきます。問題は結果ディクショナリへのアクセスです。これをアプリデリゲートに追加する必要があることがわかりました:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];
}
それ以外の場合、ハンドラーはまったく実行されません。ここで奇妙なことに、サンプル アプリでは結果ディクショナリに 2 つのフィールドがあり、
completionGesture = cancel;
didComplete = 1;
しかし、同じ電話で自分のアプリでまったく同じコードを使用すると、辞書には次のものが含まれます
didComplete = 1;
それはなぜですか?また、ユーザーが共有したかキャンセルしたかを確認する他の方法はありますか?