Pinterest APIが限定公開されたので、ためしてみる。
http://tijn.bo.lt/pinterest-api
に、リファレンスの残像があるのですが、まだ、一般公開はされていません。
Pinterest API @ Facebook
で限定公開され、APIの仕様決めもふくめて議論が始まっています。
仕様策定の段階で、外部の開発者も入れるのが、素敵な感じ。
この時点で、集まってくるPintarest AND WebAPI が好きな開発者と協調できれば、公開後には、エバンジェリスト的な役割をしてくれそうですものね。すばらしい!
限定公開だが、APIは呼び出せる。
認証が必要なAPIと、不要なAPIがあるが、すでに、APIを呼び出すことは可能。
試すのが簡単なのは認証なしでGETで呼び出せる。popularとsearch
https://api.pinterest.com/v2/popular/
https://api.pinterest.com/v2/search/pins/?query=tokyo
あたり。
これらのAPIだけでも、ビューアをつくるには十分ですね。
オリジナルのUIをカスタマイズできるということで、
↑とかつくって早速試し始めています。
まだ、HTTPでGETすらしてないのですが...
https://github.com/funami/mtl_pintarest
で始めてたりします。
レスポンスのサンプル
https://api.pinterest.com/v2/search/pins/?query=tokyoで呼び出したときのレスポンスです
{ "query" : "tokyo", "status" : "success", "pagination" : { "next" : "/v2/search/pins/?query=tokyo&limit=25&page=2" }, "counts" : { "pin" : 500, "user" : 0, "board" : 0 }, "pages" : 20 "search" : "search_pins", "pins" : [ { "source" : "http://uponafold.com.au/blog/post/tokyo-by-tokyo-claska/#", "images" : { "thumbnail" : "http://media-cdn.pinterest.com/upload/138274651028587544_tFL34op6_t.jpg", "closeup" : "http://media-cdn.pinterest.com/upload/138274651028587544_tFL34op6_c.jpg", "board" : "http://media-cdn.pinterest.com/upload/138274651028587544_tFL34op6_b.jpg", "mobile" : "http://media-cdn.pinterest.com/upload/138274651028587544_tFL34op6_f.jpg" }, "board" : { "is_following" : null, "name" : "reads", "url" : "/msquid/reads/", "id" : "138274719748063247", "user_id" : "138274788467539969", "category" : "film_music_books", "description" : "" }, "comments" : [], "sizes" : { "board" : { "height" : 200 }, "mobile" : { "width" : 530, "height" : 553 } }, "counts" : { "likes" : 0, "repins" : 2, "comments" : 0 }, "description" : "TOKYO BY TOKYO", "is_video" : false, "domain" : "uponafold.com.au", "created_at" : "2010-07-13T11:53:05", "user" : { "image_large_url" : "http://media-cdn.pinterest.com/avatars/msquid_1329867348_o.jpg", "is_following" : null, "image_url" : "http://d30opm7hsgivgh.cloudfront.net/avatars/msquid_1329867348.jpg", "id" : "138274788467539969", "full_name" : "mika = msquid", "username" : "msquid" }, "id" : "138274651028587544", "is_repin" : false } ....ここにたくさん、pinがならぶ ] }
以下レスポンスを読み解いてみましたが、公式のリファレンスはないので、想像です。
リクエスト
https://api.pinterest.com/v2/search/pins/?query=video&limit=1&page=1
名称 | 概要 | サンプル |
query | 検索ワード | video |
limit | レスポンスの件数 1以上 デフォルト:25 上限: 499 | 100 |
page | 取得したいページ limit×(page-1)+1件目から取得できる | 2 |
500件目以降のpinは存在してもエラーになって取得できないようです。なので、ループまわして、全部抜き出すようなことはできませんね。
curl "https://api.pinterest.com/v2/search/pins/?query=video&imit=1" -v
でヘッダを見ると
HTTP/1.1 200 OK< Content-Type: application/javascript Date: Sat, 25 Feb 2012 01:38:18 GMT Server: nginx/0.8.54 X-Ratelimit-Limit: 500 X-Ratelimit-Remaining: 499 Content-Length: 31632 Connection: keep-alive
ということで、X-Ratelimit-Limitで上限、X-Ratelimit-Remainingで残りの件数がわかるようです。ヘッダで返すのはjsonをパースする前に知りたいとかあるのかな?
pinのレスポンス
要素名 | 概要 | サンプル |
source | 元画像の掲載ページへのリンク | http://uponafold.com.au/blog/post/tokyo-by-tokyo-claska/# |
images | 画像 | |
-thumbnail | サムネイル | |
-closeup | 単体表示時に使われるサイズ | |
-board | 一覧表示のときに使用されるサイズ | |
-mobile | どこで使われているのか不明 | |
board | このpinのボード | |
-is_following | フォローしているかどうかかな?Authしないととれないと予想 | null |
-name | ボード名 | reads |
-url | ボードのURL相対パス | /msquid/reads/ |
-id | ボードのID | 138274719748063247 |
-user_id | ユーザーID | 138274788467539969 |
-category | カテゴリー | film_music_books |
-description | ボードの説明文 | |
comments | コメント配列 | |
-text | コメントの内容 | |
-user | ユーザー情報 | image_large_url/is_following/image_url/id/full_name/username |
-id | コメントID | 80713224449693149 |
sizes | 画像のサイズ、mobileとboardがレスポンスされる模様。closeupも高さは可変だと思われるが、一覧では使わないので、高さがわからなくてもよいのかな | |
-board | boardのサイズ | |
--height | 高さ。boardは幅固定で、高さだけ、必要なのかも | 288 |
-mobile | mobileの画像サイズ | |
--width | 幅 | 71 |
--height | 高 | 98 |
counts | ||
-like | likeの数 | 1 |
-repins | repinsの数 | 2 |
-comments | コメントの数 | 3 |
description | pinの説明文 | photo inside photo |
is_video | videoかどうか youtubeのPin等のときはtrueになる | false |
video_data | videoのソース。is_video=trueのときのみ | |
-source | ソースタイプ | youtube |
-id | ソースのID | 4_p8B20XtZw |
created_at | Pinしたタイムスタンプ | 2010-12-14T19:41:26 |
domain | オリジナルのドメイン | ohjoy.blogs.com |
user | ユーザー情報 | image_large_url/is_following/image_url/id/full_name/username |
id | pinのid http://pinterest.com/pin/107523509822961839/のようにして呼び出せる | 107523509822961839 |
is_repin | repinかどうかとおもわれるが、falseの例しかみあたらない。ログインしたらかわるのかな? | false |
画像に関して、モバイルとクローズアップのサイズが異なる場合もあった
{ "source" : "http://ohjoy.blogs.com/my_weblog/2010/12/love-this.html", "images" : { "thumbnail" : "http://media-cdn.pinterest.com/upload/107523509822961839_Hug9Gjcs_t.jpg", "closeup" : "http://media-cdn.pinterest.com/upload/107523509822961839_Hug9Gjcs_c.jpg", "board" : "http://media-cdn.pinterest.com/upload/107523509822961839_Hug9Gjcs_b.jpg", "mobile" : "http://media-cdn.pinterest.com/upload/107523509822961839_Hug9Gjcs_f.jpg" }, "board" : { "is_following" : null, "name" : "All Sorts of Inspiration ", "url" : "/athartwell/all-sorts-of-inspiration/", "id" : "107523578542424347", "user_id" : "107523647261900803", "category" : "", "description" : null }, "comments" : [], "sizes" : { "board" : { "height" : 262 }, "mobile" : { "width" : 71, "height" : 98 } }, "counts" : { "likes" : 5, "repins" : 25, "comments" : 0 }, "description" : "photo inside photo", "is_video" : false, "domain" : "ohjoy.blogs.com", "created_at" : "2010-12-14T19:41:26", "user" : { "image_large_url" : "http://media-cdn.pinterest.com/avatars/athartwell-89_o.jpg", "is_following" : null, "image_url" : "http://d30opm7hsgivgh.cloudfront.net/avatars/athartwell-89.jpg", "id" : "107523647261900803", "full_name" : "Ali Hartwell", "username" : "athartwell" }, "id" : "107523509822961839", "is_repin" : false },
ビデオのPinのサンプル
{ "source" : "http://www.youtube.com/watch?v=4_p8B20XtZw&feature=related", "images" : { "thumbnail" : "http://media-cdn.pinterest.com/upload/187603140697157134_HlHY54Fn_t.jpg", "closeup" : "http://media-cdn.pinterest.com/upload/187603140697157134_HlHY54Fn_c.jpg", "board" : "http://media-cdn.pinterest.com/upload/187603140697157134_HlHY54Fn_b.jpg", "mobile" : "http://media-cdn.pinterest.com/upload/187603140697157134_HlHY54Fn_f.jpg" }, "board" : { "is_following" : null, "name" : "Nigel with the Brie.", "url" : "/willysagnol/nigel-with-the-brie/", "id" : "187603209416605932", "user_id" : "187603278136082564", "category" : "video", "description" : "" }, "comments" : [], "sizes" : { "board" : { "height" : 144 }, "mobile" : { "width" : 480, "height" : 360 } }, "counts" : { "likes" : 0, "repins" : 0, "comments" : 0 }, "description" : " ", "is_video" : true, "created_at" : "2011-08-21T13:17:17", "domain" : "youtube.com", "video_data" : { "source" : "youtube", "id" : "4_p8B20XtZw" }, "user" : { "image_large_url" : "http://media-cdn.pinterest.com/avatars/willysagnol-14_o.jpg", "is_following" : null, "image_url" : "http://d30opm7hsgivgh.cloudfront.net/avatars/willysagnol-14.jpg", "id" : "187603278136082564", "full_name" : "Liam Keyes", "username" : "willysagnol" }, "id" : "187603140697157134", "is_repin" : false },
PintarestPinterest