Facebook SDKでcompletionGestureが来なくてハマった
Facebook SDKでシェアするため、下記の様な処理を書いた。
[FBDialogs presentShareDialogWithParams:shareParams clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { if (error) { NSLog(@"Error: %@", error.description); } else { NSLog(@"Success!"); NSLog(@"result %@", results); if([results objectForKey:@"didComplete"] && [[results objectForKey:@"completionGesture"]isEqualToString:@"post"]){ // フィード成功 [self successCallback]; } } }];
しかし、ちゃんとシェアしたのにcompletionGestureパラメータが入ってこないケースがあった。
これが無いとユーザが本当にシェアしたのか判定がうまく出来ない。
(シェアしても、キャンセルしても同じパラメータ)
調べてみると、入ってこないケースは下記のアプリ設定の中に、
実装したアプリが含まれていない場合だった。
https://www.facebook.com/settings?tab=applications
ではどうすれば良いのか、と言いますとログイン処理を書かねばいけない様だ。面倒ですね。
多分androidも同じです。
参考
ios - Detect successful facebook post using FBDialogs - Stack Overflow