objective-c - 使用 FBSDKShareOpenGraphObject 将文章分享到 Facebook 后看不到图像

标签 objective-c fbsdk

我尝试将图像共享到 Facebook,并且我需要应用程序名称位于 Facebook 的共享帖子中

这是代码:

FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
UIImage *image1 = [GeneralMethods imageConvertToSizeWithImage:postImageView.image scaledToWidth:300];
photo.image = [UIImage imageNamed:@"VImage.png"];
photo.userGenerated = YES;

NSDictionary *properties = @{
                             @"og:type": @"article",
                             @"og:title": @"new item",
                             @"og:description": @"bla bla",
//                                 @"og:image": @[photo],
                             };
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];



//    [object setPhoto:photo forKey:@"og:image"];

// Create an action
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"news.publishes";


[action setObject:object forKey:@"article"];


// Add the photo to the action. Actions
// can take an array of images.
[action setArray:@[photo] forKey:@"image"];

// Create the content
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"article";

[FBSDKShareDialog showFromViewController:ParetDelaget withContent:content  delegate:self];

这是 Facebook 预览页面,其中包含我添加的图像:

enter image description here

这是我的 Facebook 墙上的帖子,没有图片:

enter image description here

我做错了什么?

最佳答案

取消注释此行:

//                                 @"og:image": @[photo],

并评论这个:

[action setArray:@[photo] forKey:@"image"];

这样您将同时显示图像、标题和说明。

一点说明:照片对象必须是字符串 URL

就我而言,这是生成的代码:

// Create an object  
NSDictionary *properties = @{
                             @"og:type": @"article",
                             @"og:url": @"https://the_link_you_want.com",
                             @"og:title": @"your title",
                             @"og:description": @"your description",
                             @"og:image": @"http://url_to_your_image"
                             };

FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject  objectWithProperties:properties];

// Create an action
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"news.publishes";

[action setObject:object forKey:@"article"];

// Create the content
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"article";


FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];
shareDialog.fromViewController = self;
shareDialog.shareContent = content;
[shareDialog show];

if (![shareDialog canShow]) {
    // update the app UI accordingly
}
NSError *error;
if (![shareDialog validateWithError:&error]) {
    NSLog(@"FB Error: %@", error);
}

希望有帮助

关于objective-c - 使用 FBSDKShareOpenGraphObject 将文章分享到 Facebook 后看不到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36552548/

相关文章:

swift - fbsdk graph请求后变量值变为nil

ios - 为 iOS React-Native 项目设置 Fbsdk 框架

ios - UIWebView 返回特定页面

ios - NSDictionary 到 NSMutableArray

ios - 使用底部的 adMob 调整 tableView 大小时遇到​​问题

ios - FBSDKLoginManager 注销和登录管理

ios - FBSDKShareContent 分享本 map 片

ios - self.delegate 总是 nil

iphone - 显示随机词和用户名

iOS Facebook 插屏广告