使用Sharekit 2.0同时向Facebook发布图像,网址链接,文本

时间:2012-12-06 03:08:39

标签: ios facebook sharing sharekit

我想在iOS中使用Sharekit同时向Facebook发布网址,图片和文字。可能吗?如果是这样,我该怎么办?任何指导。

我想要实现这样的目标。需要一些帮助。

我尝试过这样的事情:

SHKFacebook * sharer = [ [ [ SHKFacebook alloc ] init] autorelease ];
    SHKItem * item = [ SHKItem URL:[ NSURL URLWithString:@"http://google.com" ]
                             title:@"my title"
                       contentType:SHKShareTypeURL ];
    item.facebookURLShareDescription = @"my description";
    item.facebookURLSharePictureURI = @"http://www.userlogos.org/files/logos/pek/stackoverflow.png";

但似乎没有发布描述...

修改

我的facebooksharedescription和facebookshareuri看起来像这样:

- (NSString *)facebookURLSharePictureURI {
    return nil;
}

- (NSString *)facebookURLShareDescription {
    return nil;
}

我是否需要更改此内容。

当我更改为forcepreIOS6posting时,它会给我这个错误:

the operation cannot be completed.(com.facebook.sdk. error 2.)

还需要对这两个方面提供一些指导......

2 个答案:

答案 0 :(得分:2)

请参阅SHKItem.h中的分享者特定扩展程序ShareKit 2.0中的DefaultSHKConfigurator.m。这里有清楚的描述。

您可以设置链接,图片和说明+如果您决定向用户展示对话,用户可以添加一些信息。

请注意,这适用于ShareKit类型的共享对话(iOS6之前)。在iOS6上,ShareKit使用新的原生社交框架对话,这种行为是不可能的。您甚至可以在配置器子类中的iOS 6上强制执行iOS6之前的行为(同样,请查看更多信息DefaultSHKConfigurator.m

如果您决定使用ShareKit,请务必按字面意思关注sharekit install wiki

编辑:这是从ShareKit示例应用程序ExampleShareLink.m文件粘贴的。它是一种内容类型视频,但您可以将这些facebook sharer特定扩展名用于任何内容类型。

SHKItem *item = [SHKItem URL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=3t8MeE8Ik4Y"] title:@"Big bang" contentType:SHKURLContentTypeVideo];
item.facebookURLSharePictureURI = @"http://www.state.gov/cms_images/india_tajmahal_2003_06_252.jpg";
item.facebookURLShareDescription = @"description text"; 

编辑2:如果你仔细地关注了维基,你就到了第4点 - Configuration。在配置器子类中,覆盖

- (NSNumber*)forcePreIOS6FacebookPosting {
    return [NSNumber numberWithBool:false];
}

并设置为true。您可以配置(覆盖)许多其他内容,请参阅DefaultSHKConfigurator.m

答案 1 :(得分:0)

如果你不想focePreIOS6FacebookPosting你可以设置SHKItem的图像属性。这个问题是它需要一个实际的UIImage对象而不是URL。

您可以同步创建UIImage对象,也可以使用已加载图像的UIImage对象进行共享:

NSURL* aURL = [NSURL URLWithString:photoURL];
NSData* data = [[NSData alloc] initWithContentsOfURL:aURL];
item.image = [UIImage imageWithData:data];

我通过在我的Facebook应用设置中设置正确的包ID来解决了错误com.facebook.sdk.error.2。我使用不同的捆绑ID进行测试,因此我的Facebook应用程序设置中的捆绑ID与我的应用程序的捆绑ID不匹配,我得到了com.facebook.sdk.error.2问题。这是通过将额外的开发包ID添加到Facebook应用程序设置来解决的。