Tumblr API
Tumblr APIへようこそ!わたしたちにとって、優秀なデザイナーやエンジニアがTumblrを使って創作表現のまったく新しい形をつくってくれることより楽しいものはありません。わたしたちはあなたがたのどんなプロジェクトに対しても十分に機能的で柔軟なAPIとなるように途方もない注意を払ってきました。APIの使い方についてやどうするのがよりよいのか、またAPIを使って作っている驚くべきものを話すときはわたしたちのディスカッショングループに参加してください。どうぞ責任をもってAPIをお使いください。また、フィードバックをください。楽しんでね!
もし古いAPIのドキュメントを見たいなら、ここで探すことができます。
必要なもの
OAuthキーを入手するには: アプリケーションを登録してください
あなた用のAPIキーを入手する必要があります。たとえ、署名付きOAuthリクエストを使う必要がないとしてもです。
詳細については下の認証をご覧ください。
概要
なにか作る前にこれらの要点を見なおしてください。
URIの構造
すべてのTumblr APIのリクエストは api.tumblr.com で始まります。URIパスの次の区切りはリクエストの種類によって変わります。リクエストの種類とURIの例は次のとおりです。
-
Blog: ブログのデータを取得したり、ブログに書き込んだりします
api.tumblr.com/v2/blog/{base-hostname}/... -
User: ユーザーのデータを取得したり、ユーザーアクションを実行したりします
api.tumblr.com/v2/user/...
詳細は下のメソッドをご覧ください。
ブログのホスト名
各ブログは固有のホスト名を持っています。ホスト名はスタンダードかカスタムに分類されます。
-
スタンダードホスト名: ブログの短縮名 +
.tumblr.com.例:
greentype.tumblr.com -
カスタムホスト名: DNSのCNAMEエントリによるもの
例:
www.davidslog.com
ブログでなにかする場合はブログホスト名が必要になります。APIドキュメントで {base-hostname} というプレースホルダがあったら、スタンダードホスト名かカスタムホスト名に読み替えてください。
レスポンスの形式
APIはJSONエンコード済みオブジェクトを返します(content-type: application/json)。レスポンスは使用したメソッドによって変わります。しかし、すべてのレスポンスに共通する部分があります。
| meta |
metaオブジェクトはHTTPレスポンスメッセージに相当:
|
|---|---|
| response | API特有の結果 |
レスポンスの例
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": { ... }
}
HTTPのGETメソッドを使ったすべてのリクエストはJSONPを利用することができます。JSONPを使うには、jsonp=につづけてコールバック関数名をリクエストに付け加えます(訳者注: http://api.tumblr.com/.../hogehoge?jsonp=callbackFunction という具合で)。JSONPリクエストは常にHTTPステータスコード 200を返します。しかし、本当のステータスコードはJSONレスポンスのmetaフィールドに反映されています。
APIドキュメントについて
ドキュメントは動作するサンプルをいくつか含んでいます。どうぞ心ゆくまでサンプルをクリックしてみてください。けれど、なにか悪さをするためにサンプルに埋め込まれたAPIキーを使わないでください。あなた用のAPIキー(OAuth Consumerキー)を入手するためにあなたのアプリケーションを登録してください。
URIの表記の仕方
| 表記 | 意味 | 例 |
|---|---|---|
| 中括弧 { } | 必須項目 |
api.tumblr.com/v2/blog/ブログホスト名が必須だということを表しています。
|
| 大括弧 [ ] | 任意項目 |
api.tumblr.com/v2/blog/投稿タイプが任意であることを表しています。
|
認証
APIでは、メソッドによって3つの異なった認証レベルを使用します。
- None: 認証なし。誰でもメソッドを使用できます。
-
API key: APIキーを必要とするもの。
api_keyとしてあなたのOAuth Consumerキーを使います。- 例:
api_key=PyezS3Q4Smivb24d9SzZGYSuh--IaMfAkE - OAuthキーを入手するには: アプリケーションを登録してください
- 例:
- OAuth: OAuth 1.0a プロトコルに則った署名済みリクエストを必要とするもの。
それぞれのメソッドの詳細で認証レベルについて触れています。
OAuth
APIはOAuth 1.0a プロトコルをサポートしており、HMAC-SHA1署名法を使った Authorizationヘッダを通じてパラメータを受け取ります。もしかするとすでにあなたのプラットフォームに見合ったOAuthクライアントライブラリがあるかもしれません。
Endpoints
| Request-token URL | http://www.tumblr.com/oauth/request_token |
|---|---|
| Authorize URL | http://www.tumblr.com/oauth/authorize |
| Access-token URL | http://www.tumblr.com/oauth/access_token |
Blogメソッド
/info — ブログ情報の取得
このメソッドはブログの一般的な情報を返します。たとえば、タイトルや投稿数など高水準なデータ(訳者注: 扱いやすいデータ といったほうがいいかもしれない)のことです。
APIリクエストの例
http://api.tumblr.com/v2/blog/scipsy.tumblr.com/infohttp://api.tumblr.com/v2/blog/good.tumblr.com/info
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/info?api_key={key} |
GET | API key |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| base-hostname | 文字列 |
スタンダード/カスタムブログホスト名
詳細は概要をご覧ください。
|
N/A | Yes |
| api_key | 文字列 |
あなたのOAuth Consumerキー
詳細は認証をご覧ください。
|
N/A | Yes |
レスポンス
| レスポンス項目 | 種類 | 詳細 | 備考 |
|---|---|---|---|
| title | 文字列 | ブログの表示タイトル | 比較: name |
| posts | 数値 | ブログの総投稿数 | |
| name | 文字列 | スタンダードブログホスト名では tumblr.com より前の部分(カスタムブログホスト名ではドメインより前の部分) | 比較: title |
| updated | 数値 | 一番最後の投稿があった時刻(エポック秒) | |
| 詳細 | 文字列 | ブログの詳細 | |
| ask | 真偽値 | Questionsが可能かどうか | |
| ask_anon | 真偽値 | Anonymous Questionsが可能かどうか | askが true である場合だけ出力されます |
| likes | 数値 | ユーザーのlikeの数 | ユーザーのメインブログでlikeを公開している場合だけ出力されます |
レスポンスの例
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": {
"title": "David's Log",
"posts": 3456,
"name": "david",
"url": "http:\/\/david.tumblr.com\/",
"updated": 1308953007,
"description": "<p><strong>Mr. Karp<\/strong> is tall and skinny, with
unflinching blue eyes a mop of brown hair.\r\n
He speaks incredibly fast and in complete paragraphs.</p>",
"ask": true,
"ask_anon": false,
"likes": 12345
}
}
}
/avatar — アイコン画像の取得
アイコン画像を取得できます。大きさは9種類あります。デフォルトの大きさは64x64です。
APIリクエストの例
http://api.tumblr.com/v2/blog/david.tumblr.com/avatar/512http:/api.tumblr.com/v2/blog/david.tumblr.com/avatar
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/avatar[/size] |
GET | None |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| base-hostname | 文字列 |
スタンダード/カスタムブログホスト名
詳細は概要をご覧ください。
|
N/A | Yes |
| size | 数値 |
アイコン画像のサイズ(指定した数値を一辺の長さとする正方形で画像が返ります)。
以下の数値の中から1つを指定してください:16, 24, 30, 40, 48, 64, 96, 128, 512
|
64 | No |
レスポンス
| レスポンス項目 | 種類 | 詳細 | 備考 |
|---|---|---|---|
| avatar_url | 文字列 | アイコン画像のURL。HTTPヘッダのLocationフィールドにも出力されます。(備考も見て) | HTTPヘッダのLocationフィールドが返るということは、レスポンスがアイコン画像を指すことになります。つまり、HTMLのimgタグにこのメソッドを使うことも可能です。(訳者注: imgタグののsrc属性のURIとして使えるということです) |
/followers — フォロワーの取得
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/followers |
GET | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| base-hostname | 文字列 |
スタンダード/カスタムブログホスト名
詳細は概要をご覧ください。
|
N/A | Yes |
| limit | 数値 | 取得するフォロワーの数。1から20までの数値で指定してください。 | 20 | No |
| offset | 数値 | 取得開始位置 | 0 (最初のフォロワー) | No |
レスポンス
usersオブジェクトに包まれて返されるフィールドがあります:
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| total_users | 数値 | 現在の総フォロワー数 |
| users | 配列 | 各要素はフォロワーを表します。以下のフィールドを含みます: |
| name | 文字列 | tumblrでのユーザー名 |
| url | 文字列 | メインブログのURL |
| updated | 数値 | 一番最後の投稿があった時刻(エポック秒) |
レスポンスの例
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"total_users": 2684,
"users": [
{
"name": "david",
"url": "http:\/\/www.davidslog.com",
"updated": 1308781073
},
{
"name": "ben",
"url": "http:\/\/bengold.tv",
"updated": 1308841333
},
...
]
}
}
/posts – 投稿データの取得
APIリクエストの例
http://api.tumblr.com/v2/blog/peacecorps.tumblr.com/text?notes_infohttp://api.tumblr.com/v2/blog/pitchersandpoets.tumblr.com/posts/photo?tag=new+york+yankees
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/posts[/type]?api_key={key}&[optional-params=] |
GET | API key |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| base-hostname | 文字列 |
スタンダード/カスタムブログホスト名
詳細は概要をご覧ください。
|
N/A | Yes |
| api_key | 文字列 |
あなたのOAuth Consumerキー
詳細は認証をご覧ください。
|
N/A | Yes |
| type | 文字列 |
取得する投稿データ種別。次のうち1つを指定します:
text, quote, link, answer, video, audio, photo
|
None – すべての種類を返します | No |
| id | 数値 | 投稿データID。 単一の投稿データを取得します。IDで指定されるデータがない場合は404エラーが返ります。 | None | No |
| tag | 文字列 | 取得データを絞り込むタグ | None | No |
| limit | 数値 | 取得する投稿データの数。1から20までの数値で指定してください。 | 20 | No |
| offset | 数値 | 取得開始位置 | 0 (最初の投稿データ) | No |
| reblog_info | 真偽値 |
reblog情報を返すかどうかを指定します
(true か falseで指定)。
true を指定すると、いろいろな reblogged_ フィールドが返ります。
|
False | No |
| notes_info | 真偽値 |
notes情報を返すかどうかを指定します
(true か falseで指定)。
true を指定すると、note数とnoteデータが返ります。
|
False | No |
| format | 文字列 |
投稿データの形式を指定します。HTML以外では次のものがあります:
|
None (HTML) | No |
reblog_info と notes_info は false がデフォルトです。
データ送信時、サーバに負荷がかかるためです。
レスポンス
各レスポンスは /infoレスポンスに相当する blog オブジェクトを含んでいます。投稿データは postsフィールド内の配列で返されます。
すべての投稿種別に共通のレスポンス項目
| レスポンス項目 | 種類 | 詳細 | 備考 |
|---|---|---|---|
| blog_name | 文字列 | ブログを一意に識別する短い名前 | |
| id | 数値 | 投稿データの一意なID | |
| post_url | 文字列 | 投稿データのURL | |
| type | 文字列 | 投稿データ種別 | リクエストパラメータのtypeもご覧ください。 |
| timestamp | 数値 | 投稿データの時刻(エポック秒) | |
| date | 文字列 | 投稿データのGMT日時文字列 | |
| format | 文字列 | 投稿形式: html か markdown |
|
| reblog_key | 文字列 | 投稿データをreblogするときに使用するキー | /reblogメソッドもご覧ください。 |
| tags | 配列 (文字列) | 投稿データにつけられたタグ | |
| bookmarklet | 真偽値 | Tumblr bookmarkletを使って投稿されたデータかどうか | trueである場合のみ、このフィールドが出力されます。 |
| mobile | 真偽値 | 携帯+Eメールで投稿を使って投稿されたデータかどうか | trueである場合のみ、このフィールドが出力されます。 |
| source_url | 文字列 | 投稿データ(quoteやreblogなど)の出典(source)のURL | 出典(source)がある場合のみ、このフィールドが出力されます。 |
| source_title | 文字列 | 出典(source)サイトのタイトル | 出典(source)がある場合のみ、このフィールドが出力されます。 |
| total_posts | 数値 | このリクエストで利用可能な投稿データの総数。リクエスト結果のページング処理に使います。 |
Text Posts
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| title | 文字列 | 投稿データの任意のタイトル |
| body | 文字列 | 投稿データのすべての本文 |
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "citriccomics",
"id": 3507845453,
"post_url": "http:\/\/citriccomics.tumblr.com\/post\/3507845453",
"type": "text",
"date": "2011-02-25 20:27:00 GMT",
"timestamp": 1298665620,
"format": "html",
"reblog_key": "b0baQtsl",
"tags": [
"tumblrize",
"milky dog",
"mini comic"
],
"note_count": 14,
"title": "Milky Dog",
"body": "<p><img src=\"http:\/\/media.tumblr.com\
/tumblr_lh6x8d7LBB1qa6gy3.jpg\"\/><a href=\"http:\/\
/citriccomics.com\/blog\/?p=487\" target=\"_blank\">TO READ
THE REST CLICK HERE<\/a><br\/>\n\nMilky Dog was inspired by
something <a href=\"http:\/\/gunadie.com\/naomi\"
target=\"_blank\">Naomi Gee<\/a> wrote on twitter, I really
liked the hash tag <a href=\"http:\/\/twitter.com\/
search?q=%23MILKYDOG\" target=\"_blank\">#milkydog<\/a>
and quickly came up with a little comic about it. You can
(and should) follow Naomi on twitter <a href=\"http:\/\
/twitter.com\/ngun\" target=\"_blank\">@ngun<\/a> I'm on
twitter as well <a href=\"http:\/\/twitter.com\
/weflewairplanes\"target=\"_blank\">@weflewairplanes<\/a>
<\/p>\n\nAlso, if you’re a Reddit user (or even if
you're not) I submitted this there, if you could up vote
it I'd be super grateful just <a href=\"http:\/\
/tinyurl.com\/5wj3tqz\" target=\"_blank\">CLICK HERE<\/a>"
},
...
],
"total_posts": 3
}
}
Photo Posts
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| photos | 配列 |
photoオブジェクトのプロパティ:
|
| caption | 文字列 | ユーザーが付けた画像の見出し |
| width | 数値 | 画像または画像セットの幅 |
| height | 数値 | 画像または画像セットの高さ |
複数の画像投稿は画像セット(Photosets)と呼ばれ、photosフィールド内の配列で複数のphotoオブジェクトを返します。
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "derekg",
"id": 7431599279,
"post_url": "http:\/\/derekg.org\/post\/7431599279",
"type": "photo",
"date": "2011-07-09 22:09:47 GMT",
"timestamp": 1310249387,
"format": "html",
"reblog_key": "749amggU",
"tags": [],
"note_count": 18,
"caption": "<p>my arm is getting tired.<\/p>",
"photos": [
{
"caption": "",
"alt_sizes": [
{
"width": 1280,
"height": 722,
"url": "http:\/\/derekg.org\/photo\/1280\/7431599279\/1\/
tumblr_lo36wbWqqq1qanqww"
},
{
"width": 500,
"height": 282,
"url": "http:\/\/30.media.tumblr.com\/
tumblr_lo36wbWqqq1qanqwwo1_500.jpg"
},
{
"width": 400,
"height": 225,
"url": "http:\/\/29.media.tumblr.com\/
tumblr_lo36wbWqqq1qanqwwo1_400.jpg"
},
{
"width": 250,
"height": 141,
"url": "http:\/\/26.media.tumblr.com\/
tumblr_lo36wbWqqq1qanqwwo1_250.jpg"
},
{
"width": 100,
"height": 56,
"url": "http:\/\/24.media.tumblr.com\/
tumblr_lo36wbWqqq1qanqwwo1_100.jpg"
},
{
"width": 75,
"height": 75,
"url": "http:\/\/30.media.tumblr.com\/
tumblr_lo36wbWqqq1qanqwwo1_75sq.jpg"
}
]
}
]
}
],
"total_posts": 1
}
}
Quote Posts
| レスポンス項目 | 種類 | 詳細 | 備考 |
|---|---|---|---|
| text | 文字列 | quoteのテキスト (投稿時にユーザーが編集できます) | |
| source | 文字列 |
quoteの出典(source)となるすべてのHTML
例:
<a href="...">Steve Jobs</a> |
すべての投稿種別に共通のレスポンス項目の表もご覧ください |
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "museumsandstuff",
"id": 4742980381,
"post_url": "http:\/\/museumsandstuff.tumblr.com\/post\/4742980381",
"type": "quote",
"date": "2011-04-19 08:52:34 GMT",
"timestamp": 1303203154,
"format": "html",
"reblog_key": "KLA85e6c",
"tags": [],
"note_count": 23,
"source_url": "http:\/\/museumtwo.blogspot.com\/2011\/04\/
guest-post-convivial-museum-photo-essay.html",
"source_title": "museumtwo.blogspot.com",
"text": "Why do visitors still report discomfort, confusion,
elitism, exclusion?",
"source": "<a href=\"http:\/\/museumtwo.blogspot.com\/2011\/04\/
guest-post-convivial-museum-photo-essay.html\"
target=\"_blank\">Museum 2.0: Guest Post: The Convivial
Museum Photo Essay<\/a> (via <a href=\"http:\/\/
www.joshrobinson.org\/\"target=\"_blank\">joshrobinsonblog
<\/a>)"
},
...
],
"total_posts": 9
}
}
Link Posts
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| title | 文字列 | リンク先ページのタイトル |
| url | 文字列 | リンクURL |
| 詳細 | 文字列 | ユーザーが付けた詳細 |
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "travellingcameraclub",
"id": 688472164,
"post_url": "http:\/\/travellingcameraclub.com\/post\/688472164",
"type": "link",
"date": "2010-06-11 23:17:08 GMT",
"timestamp": 1276298228,
"format": "html",
"reblog_key": "RWhJJWia",
"tags": [],
"note_count": 9,
"title": "Esther Aarts Illustration | News and Blog: Faq: How do
you make those marker doodles?",
"url": "http:\/\/blog.estadiezijn.nl\/post\/
459075181\/faq-how-do-you-make-those-marker-doodles",
"description": "<blockquote>\n<p>On my Ipad, of course!<\/p>
<p>Nothing better than the latest technology to get the job done.
Look at all my apps!<\/p> <p><img height=\"555\" width=\"500\"
src=\"http:\/\/farm5.static.flickr.com\/4006\/
4445161463_31da0327c2_o.jpg\" alt=\"my iPad\"\/><\/p>
<p>My favourite markers are an Edding 400, a Sharpie and a
Copic Ciao. The white gouache is from Dr Martins and does a
decent job covering up whatever needs to be covered up, and
flows.<\/p><\/blockquote>"
}
...
],
"total_posts": 7
}
}
Chat Posts
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| title | 文字列 | 投稿データの任意のタイトル |
| body | 文字列 | チャットのすべての本文 |
| dialogue | 配列 |
以下のプロパティを持ったオブジェクトの配列:
|
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "david",
"id": 5845345725,
"post_url": "http:\/\/www.davidslog.com\/5845345725\/
if-youre-okay-with-it-destroying-tumblr,
"type": "chat",
"date": "2011-05-25 22:32:00 GMT",
"timestamp": 1306362720,
"format": "html",
"reblog_key": "wlxAsElf",
"tags": [],
"note_count": 114,
"title": null,
"body": "David: http://staff.tumblr.com/post/5845153911
[draft] Topherchris: are you freaking serious\r\n
David: If you're okay with it - I'd love to :)\r\n
Topherchris: i'm okay with it, if you're okay with
it destroying tumblr",
"dialogue": [
{
"label": "David:",
"name": "David",
"phrase": "http://staff.tumblr.com/post/5845153911 [draft]\r",
},
{
"label": "Topherchris:",
"name": "Topherchris",
"phrase":"are you freaking serious\r"
},
{
"label": "David:",
"name": "David",
"phrase": "If you're okay with it - I'd love to :)"
},
{
"label": "Topherchris:",
"name": "Topherchris",
"phrase": "i'm okay with it, if you're okay with it
destroying tumblr",
}
]
}
...
],
"total_posts": 7
}
}
Audio Posts
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| caption | 文字列 | ユーザーが付けた見出し |
| player | 文字列 | 埋め込み音楽プレイヤーのHTML |
| plays | 数値 | audio投稿データの再生回数 |
| album_art | 文字列 | 音楽ファイルのID3タグのアルバムアート画像のURL |
| artist | 文字列 | 音楽ファイルのID3タグの artist の値 |
| album | 文字列 | 音楽ファイルのID3タグの album の値 |
| track_name | 文字列 | 音楽ファイルのID3タグの title の値 |
| track_number | 数値 | 音楽ファイルのID3タグの track の値 |
| year | 数値 | 音楽ファイルのID3タグの year の値 |
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "derekg",
"id": 5578378101,
"post_url": "http:\/\/derekg.org\/post\/5578378101/otis-redding",
"type": "audio",
"date": "2011-05-17 16:21:05 GMT",
"timestamp": 1305649265,
"format": "html",
"reblog_key": "Wa65rR5l",
"tags": [],
"note_count": 3,
"source_url": "http:\/\/soundcloud.com\/mariam-cabal\/otis-redding",
"source_title": "SoundCloud \/ Mariam Caballero",
"id3_title": "Otis Redding - Cigarettes And Coffee",
"caption": "<p>Otis Redding never fails me.\u00a0<\/p>",
"player": "<embed type=\"application\/x-shockwave-flash\"
src=\"http:\/\/assets.tumblr.com\/swf\/audio_player.swf?
audio_file=http:\/\/www.tumblr.com\/audio_file\/5578378101\/
tumblr_llclf5oDKZ1qanqww&color=FFFFFF&logo=soundcloud\"
height=\"27\" width=\"207\" quality=\"best\"><\/embed>",
"plays": 1576
}
],
"total_posts": 1
}
}
Video Posts
| レスポンス項目 | 種類 | 詳細 | 備考 |
|---|---|---|---|
| caption | 文字列 | ユーザーが付けた見出し | |
| player | embedオブジェクトの配列 |
配列内のオブジェクト:
|
動画ソースによって値が変わります |
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "john",
"id": 6522991678,
"post_url": "http:\/\/john.io\/post\/6522991678",
"type": "video",
"date": "2011-06-14 15:51:21 GMT",
"timestamp": 1308066681,
"format": "html",
"reblog_key": "sWRdVJrI",
"tags": [],
"note_count": 17,
"source_url": "http:\/\/www.WatchMojo.com",
"source_title": "WatchMojo.com",
"caption": "<p><a href=\"http:\/\/foreverneilyoung.tumblr.com\/
post\/6522738445\" target=\"_blank\">foreverneilyoung<\/a>:
<\/p>\n<blockquote>\n<p><a href=\"http:\/\/watchmojo.tumblr.com\/
post\/6521201320\" target=\"_blank\">watchmojo<\/a>:<\/p>\n
<blockquote>\n<p>Neil Young\u2019s live album \u201cA Treasure\
u201d is available today. To celebrate, we take a look at the
life and career of the Canadian singer-songwriter.
<\/p>\n<\/blockquote>\n<p>Neil 101 for you new fans out
there.<\/p>\n<\/blockquote>\n<p><strong>If you don't
know\/appreciate Neil Young's impressive body of work,
this will help<\/strong><\/p>",
"player": [
{
"width": 250,
"embed_code": "<object width=\"248\" height=\"169\"><param
name=\"movie\" value=\"http:\/\/www.youtube.com\/
v\/4Q1aI7xPo0Y&rel=0&egm=0&
showinfo=0&fs=1\"><\/param><param name=\"wmode\"
value=\"transparent\"><\/param><param name=\"
allowFullScreen\" value=\"true\"><\/param><embed
src=\"http:\/\/www.youtube.com\/v\/
4Q1aI7xPo0Y&rel=0&egm=0&showinfo=
0&fs=1\" type=\"application\/x-shockwave-flash\"
width=\"248\" height=\"169\" allowFullScreen=\"true\"
wmode=\"transparent\"><\/embed><\/object>"
},
{
"width": 400,
"embed_code": "<object width=\"400\" height=\"251\">
<param name=\"movie\" value=\"http:\/\/www.youtube.com\/
v\/4Q1aI7xPo0Y&rel=0&egm=0&showinfo=0&fs=1\"><\/
param><param name=\"wmode\" value=\"transparent
\"><\/param><param name=\"allowFullScreen\" value=
\"true\"><\/param><embed src=\"http:\/\/www.youtube.com
\/v\/4Q1aI7xPo0Y&rel=0&egm=0&
showinfo=0&fs=1\" type=\"application\/
x-shockwave-flash\" width=\"400\" height=\"251\"
allowFullScreen=\"true\" wmode=\"transparent\">
<\/embed><\/object>"
},
{
"width": 500,
"embed_code": "<object width=\"500\" height=\"305\"><param
name=\"movie\" value=\"http:\/\/www.youtube.com\/
v\/4Q1aI7xPo0Y&rel=0&egm=0&
showinfo=0&fs=1\"><\/param><param name=\"wmode\"
value=\"transparent\"><\/param><param name=\"
allowFullScreen\" value=\"true\"><\/param><embed
src=\"http:\/\/www.youtube.com\/v\/4Q1aI7xPo0Y&
rel=0&egm=0&showinfo=0&fs=1\"
type=\"application\/x-shockwave-flash\" width=\"500\"
height=\"305\" allowFullScreen=\"true\"
wmode=\"transparent\"><\/embed><\/object>"
}
]
},
...
],
"total_posts": 48
}
}
Answer Posts
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| asking_name | 文字列 | questionをしたユーザーのブログ名 |
| asking_url | 文字列 | questionをしたユーザーのブログURL |
| question | 文字列 | questionの本文 |
| answer | 文字列 | answerの本文 |
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { ... },
"posts": [
{
"blog_name": "david",
"id": 7504154594,
"post_url": "http://www.davidslog.com/7504154594",
"type": "answer",
"date": "2011-07-11 20:24:14 GMT",
"timestamp": 1310415854,
"format": "html",
"reblog_key": "HNvqLd5G",
"tags": [],
"asking_name": "aperfectfacade",
"asking_url": "http://aperfectfacade.tumblr.com/",
"question": "I thought Tumblr started in 2007, yet you
have posts from 2006?",
"answer": "<p>Good catch! Tumblr <strong>launched</strong> in
February 2007. We were testing it for a few months before
then.</p>\n<p><strong>Tumblr Trivia:</strong> Before Tumblr,
my blog (davidslog.com) was a manually edited, single page,
HTML tumblelog.</p>"
}
],
"total_posts": 1
}
}
/posts/queue — キュー投稿の取得
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/posts/queue |
GET | OAuth |
レスポンス
すべての投稿種別に共通のレスポンス項目の表もご覧ください
すべてのキュー投稿が返ります(ページング処理なし)
/posts/draft — 下書き投稿の取得
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/posts/draft |
GET | OAuth |
レスポンス
すべての投稿種別に共通のレスポンス項目の表もご覧ください
すべての下書き投稿が返ります(ページング処理なし)
/posts/submission — 提案投稿の取得
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/posts/submission |
GET | OAuth |
レスポンス
すべての投稿種別に共通のレスポンス項目の表もご覧ください
すべての提案投稿が返ります(ページング処理なし)
/post — 新規に投稿する
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/post |
POST | OAuth |
リクエストパラメータ
これらのパラメータは /post や /post/edit 、及び /post/reblog メソッドで使用されます。
すべての投稿種別に共通のリクエストパラメータ項目
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| type | 文字列 |
新規投稿の種別。以下の中から1つ指定します:
text, photo, quote, link, chat, audio, video
|
text | Yes |
| state | 文字列 |
投稿の状態。以下の中から1つ指定します:
published, draft, queue
|
published | No |
| tags | 文字列 | コンマ区切りのタグのリスト | None | No |
| tweet | 文字列 | 自動ツイート(利用可能であれば)をするかどうか: off を指定するとツイートしません。なんらかのテキストを指定するとデフォルトのツイートを上書きしてツイートします。 |
None | No |
| date | 文字列 | GMT日時文字列 | POSTリクエストされた日時 | No |
| markdown | 真偽値 | Markdown文法を使った投稿かどうか | False | No |
| slug | 文字列 | 投稿データURLの最後の部分となる短いテキスト要約 | ブログで利用可能にしていれば動的に生成されます | No |
Text Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| title | 文字列 | 任意のタイトル。HTMLエンティティはエスケープされます。 | None | No |
| body | 文字列 | 投稿本文。HTML利用可能。 | None | Yes |
Photo Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| caption | 文字列 | ユーザー指定の見出し。HTML利用可能。 | None | No |
| link | 文字列 | 画像につけるリンクURL | None | No |
| source | 文字列 | 出典(source)のURL | None | Yessource または data のどちらかが必須です |
| data |
配列 (URLエンコードされたバイナリデータ) 容量制限: 5 MB
|
1つまたは複数の画像ファイル (スライドショーを作るために複数回送信する) | None | Yessource または data のどちらかが必須です |
Quote Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| quote | 文字列 | quoteのすべてのテキスト。HTMLエンティティはエスケープされます。 | None | Yes |
| source | 文字列 | quoteの出典(source)。HTML利用可能。 | None | No |
Link Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| title | 文字列 | リンク先ページのタイトル。HTMLエンティティはエスケープされます。 | None | No |
| url | 文字列 | リンクURL | None | Yes |
| description | 文字列 | ユーザー指定の詳細。HTML利用可能。 | None | No |
Chat Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| title | 文字列 | チャットのタイトル | None | No |
| conversation | 文字列 | 会話のラベル付きの会話/チャットのテキスト(HTML利用不可) | None | Yes |
Audio Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| caption | 文字列 | ユーザー指定の見出し | None | No |
| external_url | 文字列 | 音楽ファイルを置いているサイトのURL(tumblr以外) | None | Yesexternal_url か data のどちらかが必須です |
| data |
文字列 (URLエンコードされたバイナリデータ) 容量制限: 5 MB
|
音楽ファイル | None | Yesexternal_url か data のどちらかが必須です |
Video Posts
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| caption | 文字列 | ユーザー指定の見出し | None | No |
| embed | 文字列 | 動画の埋め込み用HTMLコード | None | Yesembed か data のどちらかが必須です |
| data |
文字列 (URLエンコードされたバイナリデータ) 容量制限: 5 MB
|
動画ファイル | None | Yesembed か data のどちらかが必須です |
レスポンス
201: Createdが返されるか、エラーコードが返されます。
/post/edit – 投稿の編集
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/post/edit |
POST | OAuth |
リクエストパラメータ
/postのすべての投稿種別に共通のリクエストパラメータ項目と共通です。付け加えて以下のパラメータがあります
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| id | 数値 | 編集する投稿データのID | None | Yes |
レスポンス
200: OKが返される(編集が成功した場合)か、エラーコードが返されます。
/post/reblog – Reblogする
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/post/reblog |
POST | OAuth |
リクエストパラメータ
/postのすべての投稿種別に共通のリクエストパラメータ項目と共通です。付け加えて以下のパラメータがあります
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| id | 数値 | tumblelogのreblogされた投稿データのID |
Next available ID | No |
| reblog_key | 数値 | reblogされた投稿データのreblogキー。/postsリクエストで取得します。 | None | Yes |
| comment | 文字列 | reblogされた投稿データに付け加えるコメント | None | No |
レスポンス
201: Createdが返されるか、エラーコードが返されます。
/post/delete – 投稿の削除
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/blog/{base-hostname}/post/delete |
POST | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| id | 数値 | 削除する投稿データのID | None | Yes |
レスポンス
200: OKが返される(編集が成功した場合)か、エラーコードが返されます。
Userメソッド
/user/info – ユーザー情報の取得
リクエストで送信されたOAuth認証情報に合致するユーザーアカウント情報を取得するためにこのメソッドを使用します。
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/user/info |
POST | OAuth |
レスポンス
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| following | 数値 | ユーザーがフォローしているブログの数 |
| default_post_format | 文字列 | デフォルトの投稿形式 - html, markdown, raw |
| name | 文字列 | ユーザーの短いtumblr名 |
| likes | 数値 | ユーザーのlike数 |
| blogs | 配列 |
各項目はユーザーが投稿できるブログの情報を示しており、次のフィールドを含んでいます:
|
レスポンスの例
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"user": {
"following": 263,
"default_post_format": "html",
"name": "derekg",
"likes": 606,
"blogs": [
{
"name": "derekg",
"title": "Derek Gottfrid",
"url": "http://derekg.org/",
"tweet": "auto",
"primary": true,
"followers": 33004929,
},
{
"name": "ihatehipstrz",
"title": "I Hate Hipstrz",
...
}
]
}
}
/user/dashboard – ダッシュボードの取得
リクエストで送信されたOAuth認証情報に合致するユーザーのダッシュボードを取得するためにこのメソッドを使用します。
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/user/dashboard |
GET | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| limit | 数値 | 取得する投稿データの数。1から20までの数値で指定してください。 | 20 | No |
| offset | 数値 | 取得開始位置 | 0 (最初の投稿) | No |
| type | 文字列 |
取得する投稿データ種別。次のうち1つを指定します:
text, photo, quote, link, chat, audio, video, question
|
None – すべての種類を返します | No |
| since_id | 数値 |
指定するこのIDの次の投稿データを返すようにします
ダッシュボードのページング処理をするためにこのパラメータを使います:
まず投稿データを取得して、その投稿データの一番最後のIDを指定して次の投稿データを取得します。
|
0 | No |
| reblog_info | 真偽値 |
reblog情報を返すかどうかを指定します
(true か falseで指定)。
true を指定すると、いろいろな reblogged_ フィールドが返ります。
|
False | No |
| notes_info | 真偽値 |
notes情報を返すかどうかを指定します
(true か falseで指定)。
true を指定すると、note数とnoteデータが返ります。
|
False | No |
レスポンス
/postsレスポンスで返されるフィールドが(種別特有のフィールドも含めて)、このメソッドのレスポンスに含まれます。しかし、blogオブジェクトだけは含まれません。代わりに、各投稿データのブログを識別するblog_nameフィールドが返されます。
レスポンスの例
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"posts": [
{
"blog_name": "laughingsquid",
"id": 6828225215,
"post_url": "http:\/\/links.laughingsquid.com\/post\/6828225215",
...
}
]
}
}
/user/likes — likeの取得
リクエストで送信されたOAuth認証情報に合致するユーザーがlikeした投稿データを取得するためにこのメソッドを使用します。
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/user/likes |
GET | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| limit | 数値 | 取得する投稿データの数。1から20までの数値で指定してください。 | 20 | No |
| offset | 数値 | 取得開始位置 | 0 (最初の投稿) | No |
レスポンス
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| liked_post | 配列 | 投稿オブジェクトの配列 (ユーザーによってlikeされた投稿データ) |
| liked_count | 数値 | likeされた投稿データの数 |
/user/following – フォローブログの取得
リクエストで送信されたOAuth認証情報に合致するユーザーがフォローしているブログを取得するためにこのメソッドを使用します。
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/user/following |
GET | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| limit | 数値 | 取得するブログの数。1から20までの数値で指定してください。 | 20 | No |
| offset | 数値 | 取得開始位置 | 0 (最初のブログ) | No |
レスポンス
blogオブジェクトに包まれて返されるフィールドがあります:
| レスポンス項目 | 種類 | 詳細 |
|---|---|---|
| total_blogs | 数値 | フォローしているブログの総数 |
| blogs | 配列 |
各項目はフォローしているブログを示しており、次のフィールドを含んでいます:
|
レスポンスの例
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"total_blogs": 259,
"blogs": [
{
"name": "david",
"url": "http:\/\/www.davidslog.com",
"updated": 1308781073
},
{
"name": "matthew",
"url": "http:\/\/matthew.tumblr.com",
"updated": 1306436424
},
...
]
}
}
/user/follow – ブログをフォロー
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/user/follow |
POST | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| url | 文字列 | フォローするブログのURL | None | Yes |
レスポンス
ブログのフォローに成功した場合は200: OK、ブログが見つからない場合は404が返されます。
/user/unfollow – ブログのアンフォロー
メソッド
| URI | HTTPメソッド | 認証 |
|---|---|---|
api.tumblr.com/v2/user/unfollow |
POST | OAuth |
リクエストパラメータ
| パラメータ | 種類 | 詳細 | デフォルト値 | 必須? |
|---|---|---|---|---|
| url | 文字列 | フォローをやめるブログのURL | None | Yes |
レスポンス
ブログのアンフォローに成功した場合は200: OK、ブログが見つからない場合は404が返されます。
