まずはユーザープロフィールを取得してみます。プロフィールデータを取得するためには、下記URLに、GETメソッドでリクエストを送ります。OAuth認証を通す必要があるので、前章で紹介したtumblr_oauth()
を利用することになります。指定するオプションパラメータはありません。
JSON
{
+
"meta": { … - "status": 200,
- "msg": "OK"
},+
"response": { … +
"user": { … - "name": "arayutw",
- "likes": 5,
- "following": 5,
- "default_post_format": "html",
+
"blogs": [ … +
{ … - "title": "あらゆ on Tumblr",
- "name": "arayutw",
- "posts": 15,
- "url": "http://arayutw.tumblr.com/",
- "updated": 1404781345,
- "description": "",
- "is_nsfw": false,
- "ask": true,
- "ask_page_title": "Ask me anything",
- "ask_anon": true,
- "submission_page_title": "Submit",
- "can_submit": true,
- "followed": false,
- "can_send_fan_mail": true,
- "is_blocked_from_primary": false,
- "share_likes": true,
- "likes": 5,
- "twitter_enabled": true,
- "twitter_send": true,
- "facebook_opengraph_enabled": "N",
- "tweet": "auto",
- "facebook": "N",
- "followers": 2,
- "primary": true,
- "admin": true,
- "messages": 2,
- "queue": 0,
- "drafts": 2,
- "type": "public",
- "subscribed": false,
- "can_subscribe": false
},+
{ … - "title": "Syncer on Tumblr",
- "name": "syncerjp",
- "posts": 0,
- "url": "http://syncerjp.tumblr.com/",
- "updated": 0,
- "description": "",
- "is_nsfw": false,
- "ask": false,
- "ask_page_title": "Ask me anything",
- "ask_anon": false,
- "followed": false,
- "can_send_fan_mail": false,
- "is_blocked_from_primary": false,
- "share_likes": false,
- "twitter_enabled": false,
- "twitter_send": false,
- "facebook_opengraph_enabled": "N",
- "tweet": "N",
- "facebook": "N",
- "followers": 0,
- "primary": false,
- "admin": true,
- "messages": 0,
- "queue": 0,
- "drafts": 0,
- "type": "public",
- "subscribed": false,
- "can_subscribe": false
}
]
}
}
}
PHP
<?php
require './tumblr-oauth-library.php' ;
$access_token = '' ;
$access_token_secret = '' ;
$request_url = 'https://api.tumblr.com/v2/user/info' ;
$request_method = 'GET' ;
list( $json , $header ) = tumblr_oauth( $request_url , $request_method , array( 'oauth_token' => $access_token , 'oauth_token_secret' => $access_token_secret ) , 1 ) ;
$obj = json_decode( $json ) ;
$html = '' ;
if( !$obj || !isset( $obj->response->user->name ) || !isset( $obj->response->user->likes ) || !isset( $obj->response->user->following ) )
{
$html .= '<p><mark>データを取得できませんでした…。</mark></p>' ;
}
else
{
$name = $obj->response->user->name ;
$likes = $obj->response->user->likes ;
$follow = $obj->response->user->following ;
$html .= '<h2>ユーザー情報</h2>' ;
$html .= '<dl>' ;
$html .= '<dt>名前</dt>' ;
$html .= '<dd>' . $name . '</dd>' ;
$html .= '<dt>スキをした回数</dt>' ;
$html .= '<dd>' . $likes . '回</dd>' ;
$html .= '<dt>フォロー数</dt>' ;
$html .= '<dd>' . $follow . 'ブログ</dd>' ;
$html .= '</dl>' ;
if( isset( $obj->response->user->blogs ) && !empty( $obj->response->user->blogs ) )
{
$html .= '<h2>所有ブログ</h2>' ;
foreach( $obj->response->user->blogs as $item )
{
$blog_name = $item->title ;
$blog_url = $item->url ;
$blog_follower = $item->followers ;
$blog_updated = date( 'Y/m/d H:i' , $item->updated ) ;
$blog_posts = $item->posts ;
$html .= '<dl>' ;
$html .= '<dt>名前</dt>' ;
$html .= '<dd>' . $blog_name . '</dd>' ;
$html .= '<dt>フォロワー数</dt>' ;
$html .= '<dd>' . $blog_follower . '人</dd>' ;
if( $blog_posts )
{
$html .= '<dt>最終更新時刻</dt>' ;
$html .= '<dd>' . $blog_updated . '</dd>' ;
$html .= '<dt>投稿数</dt>' ;
$html .= '<dd>' . $blog_posts . '</dd>' ;
}
$html .= '</dl>' ;
}
}
}
$html .= '<h2>取得したデータ</h2>' ;
$html .= '<p>下記のデータを取得できました。</p>' ;
$html .= '<h3>JSON</h3>' ;
$html .= '<p><textarea rows="8">' . $json . '</textarea></p>' ;
$html .= '<h3>レスポンスヘッダー</h3>' ;
$html .= '<p><textarea rows="8">' . $header . '</textarea></p>' ;
$html .= '<h2>アプリケーション連携の解除</h2>' ;
$html .= '<p>このアプリケーションとの連携は、下記設定ページで解除することができます。</p>' ;
$html .= '<p><a href="https://www.tumblr.com/settings/apps" target="_blank">https://www.tumblr.com/settings/apps</a></p>' ;
?>
<?php
echo $html ;
?>
すべて見る