如何使用Twitter API 1.1获取“更大尺寸”的用户图像?

21

我正在尝试获取一个人的最后五条推文。我已经做到了,但是个人资料图片看起来不正常,分辨率被破坏了。像这样。http://i.hizliresim.com/wLQEJZ.jpg

var $twitter = $('#twitter');

    $.getJSON('http://www.demo.net/twitter.php?username=yeniceriozcan&count=5', function(data){
        var total = data.length,
            i = 0;
        $twitter.html(''); // önce içindekini temizle sonra tweetleri yazdır.
        for ( i; i < total; i++ ){
            var tweet = data[i].text; // tweet
            var date = parseTwitterDate(data[i].created_at); // tarih
            var image = data[i].user.profile_image_url; // profil resmi
            var url = 'https://twitter.com/' + data[i].user.screen_name +'/status/' + data[i].id_str;
            $twitter.append('<div class="tweet"><a target="_blank" href="' + url + '"><img src="' + image + '" alt="" class="profile-image" />' + tweet + '</a> <span class="tweet-date">(' + date + ')</span></div>');
        }
    });

这是我的代码。我试图获取个人资料图片。

var image = data[i].user.profile_image_url;

同时在其他推文文件中也是如此,

$tweets = $twitter->get('https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name='.$username.'&count='.$count);

print json_encode($tweets);

我使用了这个API。

但是我无法查看普通分辨率的图片。我该怎么修复它?谢谢。

4个回答

48

我发现使用更大的尺寸仍然可以将图片以相对较小的格式呈现。使用这个答案可以让你调整图片大小,让你拥有不失真的大图。

如果你想获取完整尺寸的图片,只需完全删除"_normal"即可。

http://pbs.twimg.com/profile_images/429221067630972918/ABLBUS9o_normal.jpeg

前往

http://pbs.twimg.com/profile_images/429221067630972918/ABLBUS9o.jpeg

注意: 此答案中的链接已经修改,以不反映我的Twitter详细信息,因此输入它们将会给您一个“页面不存在”的错误提示。


1
请注意,完整尺寸的图像可能会非常大。 - binaryfunt
1
有些图片没有尺寸定义,比如“_normal”或“_bigger”。例如,https://pbs.twimg.com/profile_images/481123524329734146/jk4aTqws_normal.png。 - jazz

24
当您从data[i].user.profile_image_url读取url时,请将“_normal”替换为“_bigger”。以下是Twitter文档的说明:

用户个人资料图片和横幅


16

2020年12月22日更新

情况仍然如此-可行。

2017年5月6日更新

当您通过profile_image_url或profile_image_url_https (请参见用户配置文件图像和横幅)获取用户的配置文件图像时,请尝试将文件名末尾的“ _normal ”替换为“_400x400 ”。

似乎他们现在将图片缩小到400x400,然后删除原始文件。


1
欢迎来到SO。请阅读此如何回答以提供高质量的答案。 - thewaywewere
修改了我的回答。 - philippzentner
你在哪里找到了这个维度“_400x400”?你的链接中没有任何关于“400x400”的信息。 - Green
@Green 他们没有记录它。我链接到文档,以展示他们的图像URL是如何构建的。我只是自己弄清楚了:只需进入您的Twitter个人资料,单击您的个人资料图像并复制图像地址-您就可以看到它。 - philippzentner

12

如果您仍需要回答这些问题(因为之前的问题都没有被标记为已接受的答案),那么这就是我处理Twitter API图像URL大小的方法:

从API中获取URL将以以下格式返回“http”和“https” URL:

http:

http://pbs.twimg.com/profile_images/378812345851234567/Ay2SHEYz_normal.png

https:

https://pbs.twimg.com/profile_images/378812345851234567/Ay2SHEYz_normal.png

由于某种原因,Twitter认为48x48 png足够好。 如果您想要完整分辨率,则需要从任一URL中删除“_normal”标签,正如angryTurtle所述。 这将为您提供完整尺寸图像的URL。以下是快速示例解决方案:

/// remove '_normal' from picture url to get full size
        NSString *TWTRPicStringF = [twitterProfilePictureURLStringN stringByReplacingOccurrencesOfString:@"_normal" withString:@""];

希望这能帮到你,你可以将其中一个标记为被接受的答案来关闭问题!

顺带一提:我还修改了URL内容以保护我的Twitter信息,这也解释了为什么使用上面提供的URL之一时会出现"页面不存在"的情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接