Я использую sharekit в своем приложении для iPhone, чтобы разделить ссылку url на facebook. Однако мне кажется, что невозможно поделиться URL-адресом с изображением с sharekit. Вы, ребята, знаете, как это сделать? Большое спасибо.
Как отправить URL с изображением на facebook by ShareKit
Ответ 1
Пожалуйста, взгляните на код, который я только что сделал своим методом отправки в файлах SHKFacebook.m/h, я думаю, это вам поможет.
-(BOOL) sendWithImage :(NSString*)creativeUrl
{
self.pendingFacebookAction = SHKFacebookPendingStatus;
SHKFBStreamDialog* dialog = [[[SHKFBStreamDialog alloc] init] autorelease];
dialog.delegate = self;
dialog.userMessagePrompt = SHKLocalizedString(@"Enter your message:");
dialog.attachment = [NSString stringWithFormat:
@"{\
\"name\":\"%@\",\
\"href\":\"%@\",\
\"media\":[{\"type\":\"image\",\"src\":\"%@\",\"href\":\"%@\"}]\
}",
item.title == nil ? SHKEncodeURL(item.URL) : SHKEncode(item.title),
SHKEncodeURL(item.URL),
creativeUrl,
SHKEncodeURL(item.URL)
];
dialog.defaultStatus = item.text;
dialog.actionLinks = [NSString stringWithFormat:@"[{\"text\":\"Get %@\",\"href\":\"%@\"}]",
SHKEncode(SHKMyAppName),
SHKEncode(SHKMyAppURL)];
[dialog show];
return YES;
}
Вот как я его использую
SHKFacebook *fb =[[SHKFacebook alloc]init];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@iphone/photo?id=%d",[SplashViewController getBaseURL],[photoId intValue]]];
fb.item = [SHKItem URL:url title:[dicResult valueForKey:@"Caption"]];
//fb.shareType = SHKShareTypeURL;
fb.quiet = YES;
[TedryUITabBarController updateProgress:10 totalByteToSent:11 message:@"Sharing on facebook"];
[fb sendWithImage:[dicResult valueForKey:@"CreativeURL"] :@""];
Ответ 2
Это может быть несколько проще, я надеюсь, для тех, у кого проблемы с другими ответами здесь (хотя в принципе это принципиально).
Добавьте пользовательские значения в свой элемент, например:
[item setCustomValue:@"Your caption" forKey:@"caption"];
[item setCustomValue:@"Your description" forKey:@"description"];
[item setCustomValue:@"Your image URL" forKey:@"mediaSrc"];
[item setCustomValue:@"Your image link" forKey:@"mediaHREF"];
Обратите внимание на два значения, необходимые для изображения внизу: URL-адрес источника и URL-адрес ссылки. Затем вам необходимо изменить метод "отправить" в SHKFacebook.m, чтобы использовать эти значения следующим образом:
// ...
if (item.shareType == SHKShareTypeURL)
{
self.pendingFacebookAction = SHKFacebookPendingStatus;
SHKFBStreamDialog* dialog = [[[SHKFBStreamDialog alloc] init] autorelease];
dialog.delegate = self;
dialog.userMessagePrompt = SHKLocalizedString(@"Enter your message:");
// with image...
dialog.attachment = [NSString stringWithFormat:
@"{\
\"name\":\"%@\",\
\"href\":\"%@\",\
\"caption\":\"%@\",\
\"description\":\"%@\",\
\"media\":[\
{\
\"type\": \"image\",\
\"src\": \"%@\",\
\"href\": \"%@\"\
}]\
}",
item.title == nil ? SHKEncodeURL(item.URL) : SHKEncode(item.title),
SHKEncodeURL(item.URL),
[item customValueForKey:@"caption"],
[item customValueForKey:@"description"],
[item customValueForKey:@"mediaSrc"],
[item customValueForKey:@"mediaHREF"]
];
dialog.defaultStatus = item.text;
dialog.actionLinks = [NSString stringWithFormat:@"[{\"text\":\"Get %@\",\"href\":\"%@\"}]",
SHKEncode(SHKMyAppName),
SHKEncode(SHKMyAppURL)];
[dialog show];
}
// ...
И ссылка, заданная jumponadoughnut , - это окончательный список полей, которые вы можете использовать (я не мог проголосовать за него, потому что мой представитель недостаточно высок): http://developers.facebook.com/docs/guides/attachments
Ответ 3
Я использую последний sharekit из github. Фактически, вы просто устанавливаете URL как пользовательское значение ссылки, с ключевым "изображением"
NSString *urlImage = @"http://someurl.com/someimage.jpg";
[linkItem setCustomValue:urlImage forKey:@"picture"];
Это работает для меня.
Ответ 4
Вам нужно указать URL-адрес носителя в приложении json NSString, найденном в реализации [SHKFacebook send:]. См. http://developers.facebook.com/docs/guides/attachments