2012-03-28 8 views
20

iOSアプリケーションからのpinterest共有を許可する方法は現在信頼できますか?iOSアプリケーションとpinterestとの統合

Pinterest APIはまだ公開されておらず、共有するための推奨方法はウェブボタンだけです。

+1

なぜウェブボタンではありませんか? – mydogisbox

+1

@mydogisbox Webボタンは、追加のwebviewを表示して、モバイルで最適化されたページをレンダリングする必要があるため、ユーザーにとっては不便です –

答えて

2

2013年5月20日現在、Pinterestはコンテンツを固定するためのiOS SDKをリリースしました。

詳細については、their Developers siteをご覧ください。

+0

誰かがサンプルコードのURLを持っていますか?それを行う方法の詳細を見つける必要があります – Kiddo

+0

あなたは私のポストのリンクに行きましたか? 「iOS SDK」をクリックすると、必要なものを見つけることができます。 –

2

私は高くて低く見えました。私はSDKについてPinterest Teamに連絡したこともあります。私が見つけた最も近いことは、githubのPHPラッパーですhttps://github.com/kellan/pinterest.api.php

これは非公式のAPIであり、おそらく破損する可能性が高いため、最適なソリューションではありません。

11

私のiPadアプリでは、非常に統合されています。しかし、PinterestはまだポスティングのAPIを持っていないので、私は以下の方法を使用しました。プログラムでHTML Webページを作成し、そのページにプログラムでボタンを追加するだけです。次に、私はWeb Viewを表示し、ユーザーがもう一度Pinをクリックできるようにします。これらはさらに説明されたステップです。

1)UIWebViewを持つWebViewControllerを作成します。閉じるボタンを追加し、UIWebViewDelegateProtocol、spinner、htmlStringプロパティを追加します。

2)ユーザーがアプリケーションの「ピン留め」ボタンをクリックすると、そのUIWebViewにプログラムでHTMLを生成します。この場合、私は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)「ピン止め」ボタンをタップすると呼び出すメソッドを作成します。このボタンは、UIViewで画像を挿入し、投稿する「固定」ボタンを表示します。これは私の例です:

- (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アプリに追加しました。

+1

働いています...ありがとうございます。 –

+0

このコードを使用している人は、エンコードされた文字列の割合と、フォーマット文字列を使用して文字列を作成し、 – Abizern

5

あなただけが共有したい(つまり、ユーザボードにピン止めしたい)場合は、iphone-URL-Schemeを使用して、Pinterestアプリケーションを呼び出すことができます(これは、ポスティングAPIもありません)パラメータurl(ピンのページのURL)、メディア(ピンへの画像のURL)& の説明(固定するページの説明)。 UIAlertViewを提示し、ユーザーがそれをインストールしていない場合は公式のPinterestアプリケーションをダウンロードするためにappstoreに転送します。

リファレンス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]; 
    } 
} 
+2

私はこのコードを試しましたが、canOpenUrlは常に私のデバイスにPinterestをインストールしましたが、NOを返します。 (BOOL)アプリケーション:(UIApplication *)アプリケーションopenURL:(NSURL *)url sourceApplication:私はAppDelegateメソッドに追加すべき何かがあるかどうかは、 (NSString *)sourceApplication注釈:Pinterestアプリケーションを開くには? – rosaMerino

+0

これは新しいAPIでは機能しなくなりました。 – Jeremie

0

IトライPinterestをカスタムURLスキームと統合したり、Pinterestアプリケーションを自分のデバイスにダウンロードしたりできますが、統合することはできません。

そして、私は統合のためにWebViewを使用したくないので、それを行うことは可能です、私はpinterest統合を持っているアプリケーションストアでアプリケーションを見つけられませんでした。

私もやってみましたが、それより悪いことに、Snapguideはアプリケーションとのインテグレーションも削除しています。

私は、これは簡単ですが、WebViewので、私は望んでいないということでしょう

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"]; 

、画像を固定するために、完全なPinterestのウェブサイトを開くために必要をWebViewのコードを使用していません。

関連する問題