2013-08-22 56 views
20

有没有什么方法可以用用户ID或屏幕名称构建个人资料图片网址?我将用户标识存储在数据库中,但我不想存储配置文件图像url。使用Twitter用户ID构建Twitter个人资料图片网址

编辑:
我也不想打api电话了。我想把user_id放在一个url内,如

<img src="https://twitter.com/users/profile_pic?user_id=123">有没有一个url可以做到这一点?

回答

3

你可以使用users/show method of the Twitter API得到它 - 它确实如你所描述的那样。您给它一个ID或屏幕名称,它会返回一堆数据,包括profile_image_url

+0

我不想做一个API调用了。我想把user_id放在一个url中,如 '' 是否有可能? – Tahtakafa

+3

就我所知没有办法 - Twitter在过去几年一直很厌恶他们的API – dnet

-5

随着1.1版本,使用 http://a0.twimg.com/profile_images/XXXXX/afpecvf41m8f0juql78p_normal.png 其中XXXXX是通过PHP Dom Parser

include('simple_html_dom.php'); 
$html = file_get_html('http://twitter.com/mnckry'); 
$img = array(); 

foreach($html->find('img.size73') as $e) 
    $img[] = $e->src; 

foreach($html->find('.profile-header-inner') as $e) 
    $img[] = str_replace("')", "", str_replace("url('", "", $e->{'data-background-image'})); 



echo $img[0];//Avatar 
echo "<br>"; 
echo end($img);//ProfileBG 

这会给你这样的用户标识

+1

“_normal.png”之前的第二个散列也是唯一的......这不起作用。 –

78

与API 1.1,你可以使用取得了这个网址

https://twitter.com/[screen_name]/profile_image?size=mini https://twitter.com/[screen_name]/profile_image?size=normal https://twitter.com/[screen_name]/profile_image?size=bigger https://twitter.com/[screen_name]/profile_image?size=original

Official twitter documentation Profile Images and Banners

https://twitter.com/TwitterEng/profile_image?size=original 

将重定向到

https://pbs.twimg.com/profile_images/2284174594/apcu4c9tu2zkefnev0jt.png 
+5

请注意,如果您在移动浏览器上执行此操作,它将无法正确重定向。部分twitter试图将所有人重定向到m.twitter.com – jfred

+1

注意!如果你这样做并且screen_name已经改变,那么twitter会将你的mage请求重定向到主页。如果你将这些内容直接插入

+3

是否有类似于背景图片的网址,那么你会觉得混乱?它不像你想象的那样是profile_background_image(它匹配API返回的关键字)。 –

1

基于由@Cris答案tiana214

以下PHP代码片段可用于使https://twitter.com/[screen_name]/profile_image?size=normal技巧适用于移动设备。

由于Twitter的重定向到网站的链接,如https://twitter.com/[screen_name]/profile_image?size=normal在流动装置

因此脚本获取重定向响应(用户头像)破碎的移动版本萃取物,然后在地址重定向页面本身

if (!isset($_GET['id'])) $_GET['id'] = 'twitter'; 
$urlget = curl_init(); 
curl_setopt($urlget, CURLOPT_URL, 'https://twitter.com/' . $_GET['id'] . '/profile_image?size=normal'); 
curl_setopt($urlget, CURLOPT_HEADER, true); 
curl_setopt($urlget, CURLOPT_RETURNTRANSFER, 1); 
$res = curl_exec($urlget); 
preg_match_all("/location: (.*)/", $res, $found); 
header('Location: ' . $found[1][0]); 

所以这可能是访问的twitteravatar.php?ID =叽叽喳喳它(在写作时)重新加载到https://pbs.twimg.com/profile_images/767879603977191425/29zfZY6I_normal.jpg

不漂亮,但工作。

5

介绍最简单的方式来获取没有Twitter API的Twitter个人资料图片。

使用http://avatars.io/

由于@AlexB,@jfred说,它无法在移动设备在所有的工作。

这是一个相当于方式来获取重定向的URL使用通用框架PHP或Javascript在您的单一页面。

只需在图像标签上拨打http://avatars.io/twitter/ruucm即可。

<img src="https://avatars.io/twitter/ruucm" alt="twt_profile" border="0" width="259"/> 

我测试过它的角2+和它的作品,但任何问题

+1

这很不错。感谢分享关于avatars.io! – BarryMode

+1

太棒了!非常感谢 –

相关问题