Как получить изображение пользователя большего размера с помощью Twitter API 1.1?

Я пытаюсь получить последние 5 твитов от человека. Я сделал это, но изображение профиля не выглядит нормально, разрешение повреждено. как это. ! 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);

Я использовал этот апи.

но я не могу просматривать картинки в нормальном разрешении. Как я могу это исправить? Спасибо.


person user2674354    schedule 31.01.2014    source источник


Ответы (4)


Я обнаружил, что использование большего размера возвращает изображение в относительно маленьком формате. Использование этого ответа позволяет вам изменить размер изображения, что позволит вам получить большое изображение без искажений.

Если вы хотите получить изображение в полном размере, просто полностью избавьтесь от «_normal».

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

Идет в

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

Примечание. URL-адреса в этом ответе изменены, чтобы не отражать данные моего твиттера, поэтому их ввод даст вам сообщение «страница не существует».

person simon_smiley    schedule 19.12.2014
comment
Обратите внимание, что полноразмерные изображения могут иметь довольно большой размер файла. - person binaryfunt; 23.08.2016
comment
Некоторые изображения недоступны без определения размера, например _normal или _bigger. Например, pbs.twimg.com/profile_images/481123524329734146/ - person jazz; 08.12.2017

Когда вы читаете URL-адрес из data[i].user.profile_image_url, замените «_normal» на «_bigger». Вот объяснение из документации Twitter:

Изображения и баннеры профиля пользователя

person Joe Mayo    schedule 31.01.2014

Обновление от 22 декабря 2020 г.

Это до сих пор так - работает.

Обновление от 6 мая 2017 г.

Когда вы получаете изображение профиля пользователя через profile_image_url или profile_image_url_https (см. Изображения и баннеры профиля пользователя), попробуйте заменить _normal в конце имени файла на _400x400.

Кажется, теперь они уменьшают изображения до 400x400, а затем удаляют исходный файл.

person pz90    schedule 06.05.2017
comment
Добро пожаловать в СО. Пожалуйста, прочтите это как ответить, чтобы получить качественный ответ. - person thewaywewere; 06.05.2017
comment
Отредактировал мой ответ. - person pz90; 06.05.2017
comment
Где вы нашли это измерение _400x400? В вашей ссылке нет информации о 400x400 - person Green; 24.08.2017
comment
@Green Они не документируют это. Я связался с документом, чтобы показать, как структурированы их URL-адреса изображений. Я просто понял это сам: просто зайдите в свой профиль в Твиттере, нажмите на изображение своего профиля и скопируйте адрес изображения - там вы его увидите. - person pz90; 10.01.2018

Если вам все еще нужны ответы на эти вопросы (поскольку ни один из предыдущих не помечен как принятый ответ), вот как мне удалось справиться с размером URL-адреса изображения Twitter API:

Захват URL из API вернет URL-адреса «http» и «https» в следующем формате:

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 достаточно. Если вам нужно полное разрешение, вам нужно удалить тег "_normal" из любого URL-адреса, как angryTurtle указано выше. Это даст вам URL полноразмерного изображения. Вот краткий пример обхода этого:

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

Надеюсь, это поможет вам, и вы можете отметить один из них как принятый ответ, чтобы закрыть вопрос!

К вашему сведению: я также изменил содержимое URL-адреса, чтобы защитить свою собственную информацию в Твиттере, объяснив, что «страница не существует» при использовании одного из указанных выше URL-адресов.

person Will Von Ullrich    schedule 18.11.2015