0

我想在 iOS 中使用 Sharekit 同时将 URL、图像和文本发布到 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.)

也需要这两个方面的指导......

4

2 回答 2

2

请参阅ShareKit 2.0中和中的共享器特定扩展。那里有清楚的描述。SHKItem.hDefaultSHKConfigurator.m

您可以设置链接、图像和描述 + 如果您决定向用户展示对话,用户可以添加一些消息。

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

如果您决定使用 ShareKit,请务必按照字面意思遵循 sharekit安装 wiki

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

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:如果您仔细遵循 wiki,您就到了第 4 点 -配置。在您的配置器子类中,覆盖

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

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

于 2012-12-06T17:30:54.903 回答
0

如果您不想关注PreIOS6FacebookPosting,您可以设置 SHKItem 的 image 属性。问题在于它需要一个实际的 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 应用程序设置来解决。

于 2013-08-22T21:04:08.487 回答