您是否曾经需要检查 Facebook 墙上的分享是否成功?
我想知道用户是从SDK的界面取消分享操作还是因为技术问题没有发布。
我FBDialogs
在 iOS 7 上使用框架“FacebookSDK/FacebookSDK.h”。
像这样的方法的处理程序块presentShareDialogWithPhotoParams
永远不会被调用。
提前致谢。再见。
您是否曾经需要检查 Facebook 墙上的分享是否成功?
我想知道用户是从SDK的界面取消分享操作还是因为技术问题没有发布。
我FBDialogs
在 iOS 7 上使用框架“FacebookSDK/FacebookSDK.h”。
像这样的方法的处理程序块presentShareDialogWithPhotoParams
永远不会被调用。
提前致谢。再见。
当您显示提要对话框时,您可以使用以下代码来检测用户何时成功分享帖子、用户何时取消操作或何时发生错误:
[FBWebDialogs presentFeedDialogModallyWithSession:nil
parameters:params
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
NSLog(@"%@", [NSString stringWithFormat:@"Error publishing story: %@", error.description]);
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User cancelled.
NSLog(@"User cancelled.");
} else {
// Handle the publish feed callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"post_id"]) {
// User cancelled.
NSLog(@"User cancelled.");
} else {
// User clicked the Share button
NSString *result = [NSString stringWithFormat: @"Posted story, id: %@", [urlParams valueForKey:@"post_id"]];
NSLog(@"result %@", result);
}
}
}
}];
并且当您显示共享对话框时,您可以让来自服务器的以下错误在帖子是否成功共享时处理:
[FBDialogs presentShareDialogWithLink:params.link
name:params.name
caption:params.caption
description:params.description
picture:params.picture
clientState:nil
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if(error) {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
NSLog(@"%@", [NSString stringWithFormat:@"Error publishing story: %@", error.description]);
} else {
// Success
NSLog(@"result %@", results);
}
}];