Facebook iOS SDK 4.1.0 分享回调

     2023-03-17     229

关键词:

【中文标题】Facebook iOS SDK 4.1.0 分享回调【英文标题】:Facebook iOS SDK 4.1.0 Share Callback 【发布时间】:2015-07-01 19:25:08 【问题描述】:

使用本问题标题中提到的 FBSDK,我在视图控制器中呈现了一个简单的共享对话框:

// Setup the content for the share
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = linkUrl;
content.contentDescription = description;
content.contentTitle = title;
content.imageURL = imageUrl;

// Show the share dialog
[FBSDKShareDialog showFromViewController:controller
                             withContent:content
                                delegate:someDelegate];

并实现委托方法...

- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results

    NSLog(@"Sweet, they shared.");

到目前为止一切顺利,只要用户在他们的设备上安装了 Facebook 应用程序。当用户没有安装 Facebook 时,就会出现问题。如果是这种情况,Safari 会打开 Facebook 登录流程的 Web 版本(这很好),但如果您随后切换回原始应用程序而不登录 Facebook/执行任何其他任务,则上面显示的完成委托方法是调用。

有没有人对此有任何解决方法的经验?似乎应该有一种可靠的方法来确定该帖子是否确实发生了。

注意:上面的代码很伪。在实际实现中,我确实实现了所有的委托回调(didComplete、didCancel 和 didFail)。

【问题讨论】:

【参考方案1】:

编辑:事实证明,如果设备上安装了 Facebook 应用程序,则调用完成方法时结果字典为空。为了克服这个问题,需要先检查是否已安装 Facebook。

当然,在发布后我偶然发现了答案。如果共享实际发生,则在 didCompleteWithResults 方法中返回的结果字典包含一个 postId 键。所以逻辑很简单:

- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results

    NSURL *fbURL = [NSURL URLWithString:@"fb://"];
    if (![[UIApplication sharedApplication] canOpenURL:fbURL])
        if (results[@"postId"]) 
            NSLog(@"Sweet, they shared, and Facebook isn't installed.");
         else 
            NSLog(@"The post didn't complete, they probably switched back to the app");
        
     else 
        NSLog(@"Sweet, they shared, and Facebook is installed.");
    

虽然这可行,但它似乎不是一种非常安全的处理方式(如果 Facebook 将来将密钥从“postId”更改为其他内容怎么办?不太可能,但你明白我的意思)。

【讨论】:

Facebook sdk 4.1.0 注销不起作用

】Facebooksdk4.1.0注销不起作用【英文标题】:Facebooksdk4.1.0Logoutnotworking【发布时间】:2015-11-0809:48:23【问题描述】:我正在使用以下代码从应用程序中注销。[[FBSDKLoginManagernew]logOut];if([FBSDKAccessTokencurrentAccessToken])[FBSDKAccessTokensetCurre... 查看详情

iOS Facebook SDK 原生分享

】iOSFacebookSDK原生分享【英文标题】:iOSFacebookSDKNativeSharing【发布时间】:2015-03-1413:58:13【问题描述】:我已使用以下代码通过本机Facebook应用程序(如果已安装)将链接的Facebook共享与描述、标题等集成:FBLinkShareParams*params=[[FBL... 查看详情

iOS 9 Facebook SDK 登录/分享

】iOS9FacebookSDK登录/分享【英文标题】:iOS9FacebookSDKLogin/Share【发布时间】:2015-09-2317:17:58【问题描述】:我在iOS9上使用最新的FacebookSDK(4.6)时遇到了问题。为了授权用户,我使用了FBSDKLoginManager。我试过设置这个:loginManager.loginBe... 查看详情

分享图片蚂蚁文字 Facebook SDK 4.0 iOS

】分享图片蚂蚁文字FacebookSDK4.0iOS【英文标题】:ShareimageanttextFacebookSDK4.0iOS【发布时间】:2015-04-2815:51:21【问题描述】:我正在尝试使用Facebook的新SDK4.0共享图像和文本,但我无法做到。要分享图片,我有以下代码:FBSDKSharePhoto*... 查看详情

Facebook iOS SDK - 分享用户照片

】FacebookiOSSDK-分享用户照片【英文标题】:FacebookiOSSDK-shareuserphoto【发布时间】:2012-12-0504:24:56【问题描述】:我需要将照片上传到用户的相册并让用户分享一些消息。我已经使用[FBRequestConnectionstartForUploadPhoto:photocompletionHandler:h... 查看详情

Facebook SDK iOS 的自定义分享、登录按钮

】FacebookSDKiOS的自定义分享、登录按钮【英文标题】:CustomShare,LoginButtonforFacebookSDKiOS【发布时间】:2015-08-0117:56:03【问题描述】:我将图像分享到Facebook以使用FacebookSDK。问题是我不知道如何将这些按钮更改为自定义按钮。例如... 查看详情

iOS Facebook sdk 4.0 分享图片

】iOSFacebooksdk4.0分享图片【英文标题】:iOSFacebooksdk4.0shareanimage【发布时间】:2015-03-2716:26:01【问题描述】:我正在尝试使用新的facebooksdk4.0共享图像。我在facebook示例中使用了相同的代码,但是当我尝试呈现FBSDKShareDialog时出现此... 查看详情

通过 FB SDK for iOS 将视频分享到 facebook

】通过FBSDKforiOS将视频分享到facebook【英文标题】:SharingVideotofacebookviaFBSDKforiOS【发布时间】:2013-08-0606:41:25【问题描述】:我在我的应用中创建了一个视频。我想通过Facebook原生SDK将此视频分享到用户的Facebook墙。我能够使视频... 查看详情

使用 Facebook iOS SDK 分享带字幕的视频

】使用FacebookiOSSDK分享带字幕的视频【英文标题】:SharingavideowithacaptionusingFacebookiOSSDK【发布时间】:2016-03-0318:17:27【问题描述】:我使用的是最新版本的FacebookSDK。分享带有标题的照片很容易:FBSDKSharePhotoContent*content=[[FBSDKSharePh... 查看详情

Facebook iOS SDK 分享对话框 - 在朋友的墙上分享

】FacebookiOSSDK分享对话框-在朋友的墙上分享【英文标题】:FacebookiOSSDKShareDialog-SharingonaFriend\'sWall【发布时间】:2013-11-2311:56:19【问题描述】:是否可以使用FacebookiOSSDK分享对话框在朋友的墙上分享?我知道使用FeedDialog可以做到... 查看详情

iOS Facebook SDK 分享照片和从 Facebook 应用程序注销后

】iOSFacebookSDK分享照片和从Facebook应用程序注销后【英文标题】:iOSFacebookSDKsharephotoandafterlogoutfromFacebookapp【发布时间】:2014-09-1910:15:11【问题描述】:我需要在展台的图腾上安装我的应用程序。申请流程为:1)用户拍照2)用户点... 查看详情

在 Facebook iOS SDK 4.4 上分享视频

】在FacebookiOSSDK4.4上分享视频【英文标题】:SharingVideoonFacebookiOSSDK4.4【发布时间】:2015-07-2207:30:50【问题描述】:在我的iOS移动应用程序中,我需要在Facebook帐户上分享/上传视频(来自服务器而不是本地视频)。我正在使用iOS8.0... 查看详情

iOS 中的社交分享 SDK

...:是否有任何适用于iOS的社交共享sdk或库,包括twitter、Facebook、linkedIn和Google+。我检查了ShareKit,但它只包括twitter和Facebook服务,而不包括linkedIn和Google+。【问题讨论】:【参考方案1】:iOS6现在包括Facebook 查看详情

Facebook SDK - iOS - 分享 URL 失败(错误 102)

】FacebookSDK-iOS-分享URL失败(错误102)【英文标题】:FacebookSDK-iOS-FailtoshareURL(Error102)【发布时间】:2013-08-3021:10:21【问题描述】:我正在尝试在我的应用程序上集成一个简单的URL分享,遵循专门的Facebook教程(link)在我的应用程序... 查看详情

Facebook SDK 4.1.0 错误“模块 'FBSDKCoreKit' 的 Umbrella 标头不包括标头 'FBSDKTestUsersManager.h'

】FacebookSDK4.1.0错误“模块\\\'FBSDKCoreKit\\\'的Umbrella标头不包括标头\\\'FBSDKTestUsersManager.h\\\'【英文标题】:FacebookSDK4.1.0error"Umbrellaheaderformodule\'FBSDKCoreKit\'doesnotincludeheader\'FBSDKTestUsersManager.h\'FacebookSDK 查看详情

如何在 Facebook iOS SDK 中发布或分享?

】如何在FacebookiOSSDK中发布或分享?【英文标题】:HowtopostorshareinFacebookiOSSDK?【发布时间】:2016-02-1904:29:12【问题描述】:我正在尝试使用FacebookSDK在我的fb中发布消息或分享照片。我已经按照如何安装它的步骤进行操作。我已经... 查看详情

Facebook SDK 3.1 - 分享图片

】FacebookSDK3.1-分享图片【英文标题】:FacebookSDK3.1-shareimage【发布时间】:2012-10-1513:54:58【问题描述】:我必须在我的ios应用程序中集成FBSDK3.1。我成功在墙上分享了一张图片,但我无法设置“通过[appname]”(默认情况下需要“通... 查看详情

Facebook iOS SDK,使用 ShareDialog(不是 GraphAPI)分享带有标题的图像

】FacebookiOSSDK,使用ShareDialog(不是GraphAPI)分享带有标题的图像【英文标题】:FacebookiOSSDK,shareanimagewithacaptionusingShareDialog(notGraphAPI)【发布时间】:2015-02-2407:35:17【问题描述】:我正在使用以下代码通过ShareDialog将图片分享到Faceb... 查看详情