Подтвердить что ты не робот

Интеграция приложений iOS с pinterest

Каков самый надежный способ в настоящее время разрешить совместное использование pinterest из приложения iOS?

Pinterest API еще не является общедоступным, и только предлагаемый способ обмена - это их веб-кнопка.

4b9b3361

Ответ 1

По состоянию на 20 мая 2013 года Pinterest выпустили SDK для iOS для закрепления контента.

За дополнительной информацией обращайтесь сайт разработчиков.

Ответ 2

Я сделал интеграцию pinterest в своем приложении для iPad. Но поскольку Pinterest еще не имеет API для публикации, я использовал следующий метод. Я просто создаю программную HTML-страницу HTML и добавляю кнопку Pin it на эту страницу программно. Затем я показываю веб-представление и позволяю пользователю еще раз нажать "Закрепить его". Это более объясненные шаги.

1) Создайте WebViewController с UIWebView. Добавить кнопку Закрыть, добавить свойство UIWebViewDelegateProtocol, spinner, htmlString.

2) Создайте HTML программно, чтобы поместить в этот UIWebView, когда пользователь нажимает кнопку "Pin it" в вашем приложении. В этом случае я помещал на страницу HTML разные изображения для разных продуктов.

- (NSString*) generatePinterestHTMLForSKU:(NSString*)sku {
NSString *description = @"Post your description here";

// Generate urls for button and image
NSString *sUrl = [NSString stringWithFormat:@"http://d30t6wl9ttrlhf.cloudfront.net/media/catalog/product/Heros/%@-1.jpg", sku];
NSLog(@"URL:%@", sUrl);
NSString *protectedUrl = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridge CFStringRef)sUrl, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
NSLog(@"Protected URL:%@", protectedUrl);
NSString *imageUrl = [NSString stringWithFormat:@"\"%@\"", sUrl];
NSString *buttonUrl = [NSString stringWithFormat:@"\"http://pinterest.com/pin/create/button/?url=www.flor.com&media=%@&description=%@\"", protectedUrl, description];

NSMutableString *htmlString = [[NSMutableString alloc] initWithCapacity:1000];
[htmlString appendFormat:@"<html> <body>"];
[htmlString appendFormat:@"<p align=\"center\"><a href=%@ class=\"pin-it-button\" count-layout=\"horizontal\"><img border=\"0\" src=\"http://assets.pinterest.com/images/PinExt.png\" title=\"Pin It\" /></a></p>", buttonUrl];
[htmlString appendFormat:@"<p align=\"center\"><img width=\"400px\" height = \"400px\" src=%@></img></p>", imageUrl];
[htmlString appendFormat:@"<script type=\"text/javascript\" src=\"//assets.pinterest.com/js/pinit.js\"></script>"];
[htmlString appendFormat:@"</body> </html>"];
return htmlString;
}

Это пример моего метода генерации HTML-страниц.

3) Создайте метод вызова, когда пользователь нажимает кнопку "Pin it" , которая показывает, что webView с изображением, которое вы отправляете, и кнопку "Pin it" на UIWebView. Это мой пример:

- (void) postToPinterest {

NSString *htmlString = [self generatePinterestHTMLForSKU:self.flProduct.sku];
NSLog(@"Generated HTML String:%@", htmlString);
WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
webViewController.htmlString = htmlString;
webViewController.showSpinner = YES;

[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:webViewController animated:YES];
}

4) Поместите кнопку "Закрыть" в свой WebViewController, чтобы закрыть ее. Также вы можете добавить проигрыватели для отслеживания загрузки UIWebView.

- (IBAction)closeClicked:(id)sender {
[self dismissModalViewControllerAnimated:YES];

}

- (void)webViewDidStartLoad:(UIWebView *)webView {
if (showSpinner) {
    // If we want to show Spinner, we show it everyTime
    [UIHelper startShowingSpinner:self.webView];
}
else {
    // If we don't -> we show it only once (some sites annoy with it)
    if (!spinnerWasShown) {
        [UIHelper startShowingSpinner:self.webView];
        spinnerWasShown = YES; 
    }
}
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    [UIHelper stopShowingSpinner];
}

P.S. Я использовал тот же метод, чтобы добавить кнопку Google Plus +1 в приложение iPad. (У него также нет API-интерфейса публикации, только API только для чтения)

Ответ 3

Если вы хотите использовать общий доступ (например, на панели пользователя), вы можете использовать iphone-URL-схему и вызвать приложение Pinterest вместе с параметрами URL (URL-адрес страницы для pin), media (URL-адрес изображения для вывода) и описание (описание страницы, которая будет закреплена). Представьте UIAlertView и отправьте их в appstore, чтобы загрузить официальное приложение Pinterest, если пользователь его не установил.

Ссылка: http://wiki.akosma.com/IPhone_URL_Schemes#Pinterest

Код для открытия Pinterest Applicaiton:

NSURL *url = [NSURL URLWithString:@"pinit12://pinterest.com/pin/create/bookmarklet/?url=URL-OF-THE-PAGE-TO-PIN&media=URL-OF-THE-IMAGE-TO-PIN&description=ENTER-YOUR-DESCRIPTION-FOR-THE-PIN"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Pinterest" message:@"Would you like to download Pinterest Application to share?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Continue", nil];
    [alert show];
}

Метод UIAlertViewDelegate

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 1){
        NSString *stringURL = @"http://itunes.apple.com/us/app/pinterest/id429047995?mt=8";
        NSURL *url = [NSURL URLWithString:stringURL];
        [[UIApplication sharedApplication] openURL:url];
    }
}

Ответ 4

Я тоже выглядел высоко и низко. Я даже связался с командой Pinterest по поводу SDK. Самая близкая вещь, которую я нашел, - это оболочка PHP на github https://github.com/kellan/pinterest.api.php.

Это не лучшее решение, потому что это неофициальный api и, скорее всего, сломается.

Ответ 5

Я попытался интегрировать Pinterest с пользовательской схемой URL, а также загрузить приложение Pinterest на моем устройстве, но не abel для интеграции с ним.

И дело в том, что я не хочу использовать webView для интеграции, так что это можно сделать, я не нашел приложения в магазине приложений, у которого есть интеграция pinterest.

Я тоже делал googling, но все хуже, Snapguide также удаляет интеграцию pinterest из своего приложения.

Я использовал код webView для вывода изображения, не нужно открывать полный веб-сайт Pinterest,

NSString *urlStr =[NSString stringWithFormat:@"http://pinterest.com/pin/create/bookmarklet/?url=www.<domainname>.com&media=http://<domainname>.files.com/hello.jpg?w=495&description=hello"];

Это будет легко, но с webView и что я не хочу.