iOS Facebook sdk 4.0 分享图片

     2023-03-04     35

关键词:

【中文标题】iOS Facebook sdk 4.0 分享图片【英文标题】:iOS Facebook sdk 4.0 share an image 【发布时间】:2015-03-27 16:26:01 【问题描述】:

我正在尝试使用新的 facebook sdk 4.0 共享图像。 我在 facebook 示例中使用了相同的代码,但是当我尝试呈现 FBSDKShareDialog 时出现此异常。

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析格式 字符串 "SELF NOT NULL"' * 第一次抛出调用堆栈:( 0 CoreFoundation 0x000000010b782a75 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000010b35abb7 objc_exception_throw + 45 2 基础 0x000000010aca097d _qfqp2_performParsing + 8495 3 基础 0x000000010ac9e7e6 +[NSPredicate predicateWithFormat:arguments:] + 46 4 基础 0x000000010ac9e7a0 +[NSPredicate predicateWithFormat:] + 142 5 PhotoGunShot 0x0000000107f1a4fc -[FBSDKShareDialog _showShareSheetWithCanShowError:validationError:] + 653 6 PhotoGunShot 0x0000000107f18f7b -[FBSDKShareDialog 显示] + 147

这里是代码

- (UIAlertAction*) createActionForFacebookWithMediaPath:(NSString*) path andMediaType:(MediaType) mediaType 
    NSString * mediaName = mediaType == kMediaTypeImage ? NSLocalizedString(@"KEY_IMAGE", nil) : NSLocalizedString(@"KEY_VIDEO", nil);
    UIAlertAction* facebookAction = [UIAlertAction actionWithTitle:[NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"KEY_SHARE_YOUR", nil),mediaName] style:UIAlertActionStyleDefault
                                                          handler:^(UIAlertAction * action) 
                                                              NSObject<FBSDKSharingContent> * content = nil;
                                                              if (mediaType == kMediaTypeImage) 
                                                                  NSURL * fileURL = [NSURL URLWithString:path];
                                                                  FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
                                                                  photo.imageURL = fileURL;
//                                                                  photo.userGenerated = YES;
                                                                  FBSDKSharePhotoContent * photoContent = [[FBSDKSharePhotoContent alloc] init];
                                                                  photoContent.photos = @[photo];
                                                                  content = photoContent;
                                                              
                                                              else if (mediaType == kMediaTypeVideo) 
                                                                  NSURL *videoURL = [NSURL fileURLWithPath:path];

                                                                  FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init];
                                                                  video.videoURL = videoURL;
                                                                  FBSDKShareVideoContent * videoContent = [[FBSDKShareVideoContent alloc] init];
                                                                  videoContent.video = video;
                                                                  content = videoContent;
                                                              
                                                                  [FBSDKShareDialog showFromViewController:self
                                                                                               withContent:content
                                                                                                  delegate:nil];

                                                          ];
    return facebookAction;


- (UIAlertAction*) createActionForCameraRollWithMediaPath:(NSString*) path andMediaType:(MediaType) mediaType 
    return nil;


- (void) showShareOptionsForMediaPath:(NSString*)path 
    UIAlertController * alertControl =[UIAlertController alertControllerWithTitle:NSLocalizedString(@"KEY_SHARE_TITLE", nil) message:nil preferredStyle:UIAlertControllerStyleActionSheet];
    UIAlertAction * cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"KEY_CANCEL", nil) style:UIAlertActionStyleCancel handler:NULL];
    [alertControl addAction:cancelAction];
    MediaType mediaType = [self checkMediaTypeAtPath:path];
    switch (mediaType) 
        case kMediaTypeImage:
        
            UIAlertAction * fbAction =[self createActionForFacebookWithMediaPath:path andMediaType:kMediaTypeImage];
            [alertControl addAction:fbAction];
        
            break;
        case kMediaTypeVideo:
        
            UIAlertAction * fbAction =[self createActionForFacebookWithMediaPath:path andMediaType:kMediaTypeVideo];
            [alertControl addAction:fbAction];

        
            break;
        case kMediaTypeUnknown:
        
            //EXCEPTION
        
            break;
        default:
            break;
    

    [self presentViewController:alertControl animated:YES completion:nil];

首先我创建一个显示共享选项的 UIAlertController,并添加相对的UIAlertAction,当我调用共享对话框时会生成异常。 有什么建议吗?

【问题讨论】:

我已经提交了一个错误,它似乎是一个已知问题 【参考方案1】:

此问题将在下一个 SDK 版本中修复。

显然,您可以从 FBSDKShareDialog 中删除以下行并从源代码构建框架以解决它。 https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.m#L442

您可以在此处查看 Andrea 提交的错误:https://developers.facebook.com/bugs/964300063610778/

【讨论】:

Facebook SDK 3.1 - 分享图片

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

[Facebook-iOS-SDK 4.0]如何从FBSDKProfile获取用户邮箱

】[Facebook-iOS-SDK4.0]如何从FBSDKProfile获取用户邮箱【英文标题】:[Facebook-iOS-SDK4.0]HowtogetuseremailaddressfromFBSDKProfile【发布时间】:2015-03-2822:14:42【问题描述】:我正在将我的应用升级到Facebook-iOS-SDK-4.0,但我似乎无法从FBSDKProfile获取... 查看详情

找不到 FacebookSDK.h - Xcode 6.2、Facebook-iOS-SDK 4.0

】找不到FacebookSDK.h-Xcode6.2、Facebook-iOS-SDK4.0【英文标题】:FacebookSDK.hnotfound-Xcode6.2,Facebook-iOS-SDK4.0【发布时间】:2015-03-2701:16:31【问题描述】:我正在使用Xcode6.2、Facebook-iOS-SDK4.0。我曾经有使用Facebook-iOS-SDK3.20.0的工作代码。但是... 查看详情

ParseFacebookUtilsV4 和 Facebook-iOS-SDK 4.0

】ParseFacebookUtilsV4和Facebook-iOS-SDK4.0【英文标题】:ParseFacebookUtilsV4andFacebook-iOS-SDK4.0【发布时间】:2015-04-0322:47:40【问题描述】:我已更新我的项目以使用最新版本的Parse和FacebookSDK,我有一个问题。要将Facebook与Parse一起使用,我... 查看详情

Facebook javascript SDK 分享图片问题

】FacebookjavascriptSDK分享图片问题【英文标题】:FacebookjavascriptSDKshareimageissue【发布时间】:2019-08-2216:16:06【问题描述】:我想为通过Facebook分享图片制作自定义按钮。我一开始已经添加了JSSDK脚本:&lt;scriptasyncdefersrc="https:/... 查看详情

Facebook iOS SDK > 4.0 替代 initWithAppId?

】FacebookiOSSDK>4.0替代initWithAppId?【英文标题】:FacebookiOSSDK>4.0replacementforinitWithAppId?【发布时间】:2015-06-2407:09:19【问题描述】:我有两个不同的FBAppId,一个用于最终发布,另一个用于调试目的,我想知道自从SDK4.0之后它不... 查看详情

适用于 iOS 4.0 的 Facebook sdk

】适用于iOS4.0的Facebooksdk【英文标题】:facebooksdkforiOS4.0【发布时间】:2012-11-0907:11:59【问题描述】:我应该获得什么版本的facebooksdk才能让我的应用在iOS4.0下得到支持?我有xcode4.5。目前我有facebooksdk3.1,并且我已经从iOS5.0到6进... 查看详情

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

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

使用标准文本分享照片 - Facebook iOS SDK 4.x

】使用标准文本分享照片-FacebookiOSSDK4.x【英文标题】:sharephotowithstandardtext-FacebookiOSSDK4.x【发布时间】:2015-11-0601:12:30【问题描述】:我需要在用户的墙上贴一张带有标准文字的图片。你能用FBSDK4.x做到这一点吗?letphotoshare=FBSDKS... 查看详情

Facebook SDK 4.0 iOS 不再快速切换到设备上安装的 Facebook APP

】FacebookSDK4.0iOS不再快速切换到设备上安装的FacebookAPP【英文标题】:FacebookSDK4.0iOSnolongerfastswitchestotheFacebookAPPinstalledonthedevice【发布时间】:2015-10-0613:39:11【问题描述】:我正在升级到FacebookSDK4.6,并且我正在使用以下代码根据Sc... 查看详情

iOS Facebook SDK 原生分享

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

使用 iOS 版 Facebook SDK 发布故事时未上传图片

】使用iOS版FacebookSDK发布故事时未上传图片【英文标题】:ImagenotuploadedwhenpublishingastoryusingFacebookSDKforiOS【发布时间】:2014-08-1309:28:46【问题描述】:我正在关注使用分享对话框发布故事的官方FB教程:https://developers.facebook.com/docs/... 查看详情

facebook sdk:用文字分享本地图片让我发疯

】facebooksdk:用文字分享本地图片让我发疯【英文标题】:facebooksdk:sharelocalpicturewithtextisdrivingmecrazy【发布时间】:2014-08-0214:20:37【问题描述】:目标在我的相机应用程序中,我想让用户在用户的Facebook墙上分享一张带有预格式化... 查看详情

Facebook SDK 4.0 IOS Swift 以编程方式注销用户

】FacebookSDK4.0IOSSwift以编程方式注销用户【英文标题】:FacebookSDK4.0IOSSwiftLogauseroutprogrammatically【发布时间】:2015-03-3116:57:25【问题描述】:在我的应用程序中的某些情况下,我需要注销用户,但我的视图控制器中只有FBSDKLoginButton... 查看详情

ios分享到第三方应用方法整理

参考技术A在iOS应用内将内容分享到Facebook,可通过接入FacebookSDK实现。官方网站:https://developers.facebook.com/docs/sharing/ios接入FacebookSDK这里不做介绍。可分享的内容为链接、图片、视频、多媒体(图片+视频),还可为分享的视频添... 查看详情

iOS 9 Facebook SDK 登录/分享

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

Facebook iOS SDK - 分享用户照片

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

Android Facebook SDK 4.0 ShareDialog 不显示长文本

】AndroidFacebookSDK4.0ShareDialog不显示长文本【英文标题】:AndroidFacebookSDK4.0ShareDialogdoesn\'tshowlongtexts【发布时间】:2015-03-3117:58:41【问题描述】:我是Android和FacebookSDK的新手开发人员。我想通过Android上的FacebookSDK4.0将我的长描述文... 查看详情