2011-06-09 126 views
4

大家都知道吗?关于tumblr api/read/json中的头像网址? 像例如facebook?Tumblr API获取当前AVATAR URL

http://graph.facebook.com/[your Facebook的帐号] /图片?类型=正常

<?php 
$tumblog = 'natadec0c0'; // change to your username 
// if your Tumblog is self hosted, you need to change the base url to the location of your tumblog 
$baseurl = 'http://' . $tumblog . '.tumblr.com'; 
$request = $baseurl . '/api/read/json'; 
$ci = curl_init($request); 
curl_setopt($ci,CURLOPT_RETURNTRANSFER, TRUE); 
$input = curl_exec($ci); 
curl_close($ci); 

// Tumblr JSON doesn't come in standard form, some str replace needed 

$input = str_replace('var tumblr_api_read = ','',$input); 
$input = str_replace(';','',$input); 

// parameter 'true' is necessary for output as PHP array 

$value = json_decode($input,true); 
$content = $value['posts']; 
$blogInfo = $value['tumblelog']; 

// the number of items you want to display 
$item = 10; 

// Echo the blog info 
echo "<h3><a href=\"" . $baseurl . "\">" . $blogInfo['title'] . "</a></h3>\n"; 
echo "<h4>" . $blogInfo['picture'] . "</h4>\n<hr />\n"; 

?> 

如何追加我目前的化身?

回答

0

我想你必须使用

GET http://www.tumblr.com/api/[email protected]&password=12345 

获得用户的头像。矿样本响应是

<tumblr version="1.0"> 
<user default-post-format="html" can-upload-audio="1" can-upload-aiff="1" can-ask-question="1" can-upload-video="1" max-video-bytes-uploaded="26214400" liked-post-count="134"/> 
<tumblelog title="ABNKKPGPiCTuReNPLaKo?!" is-admin="1" posts="301" twitter-enabled="0" draft-count="0" messages-count="0" queue-count="" name="arvn" url="http://arvn.tumblr.com/" type="public" followers="17" avatar-url="http://28.media.tumblr.com/avatar_b1786ec9e62d_128.png" is-primary="yes" backup-post-limit="30000"/> 
<tumblelog title="i kras yu." is-admin="1" posts="1" twitter-enabled="0" draft-count="0" messages-count="0" queue-count="" name="ikrasyu" url="http://ikrasyu.tumblr.com/" type="public" followers="2" avatar-url="http://25.media.tumblr.com/avatar_02a7ef66fce8_128.png" backup-post-limit="30000"/> 
</tumblr> 

,并得到相应的tumblelog的avatar-url领域。太糟糕了,没有json格式选项,可能使用preg_match。您还需要用户的电子邮件地址和密码,或通过OAuth进行操作。

或者你可以刮掉化身的tumblelog。

$page = file_get_contents("http://{$tumblog}.tumblr.com/"); 
$avatar = preg_match('/<img src="(http.+)" alt="portrait"/', $page, $matches) ? $matches[1]: 'http://example.com/blank.png'; 
+0

谢谢你的先生,但关于没有OAuth? AMM就像这个网站http://www.tumbletrain.com尝试添加您的tumblr用户名..然后刷新页面它会自动添加您的tumblr照片...它是如何做到的?先生:) – mardagz 2011-06-09 07:27:41

+0

@marc最好的办法是,他们获取tumblelog页面,并寻找这个'portrait Arvin 2011-06-09 07:37:15

+0

@marc I edited my answer to add that option; scraping the page – Arvin 2011-06-09 07:45:02

7

更好的解决方案是将Avatar api放在img标签中。

api.tumblr.com/v2/blog/{base-hostname}/avatar[/size] 

example: <img src='http://api.tumblr.com/v2/blog/myreallycoolblog.tumblr.com/avatar/48'/> 

所以只要你有博客名称,你可以显示头像。

+0

For me I had to include '/blog/', aka '' – 2013-11-21 22:27:50