@kiberlain

Как получить фото пользователя вконтакте по его id (используя js)?

Собственно нужен пример функции, которая принимает id пользователя и возращает src его авы
  • Вопрос задан
  • 7146 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Нужно вызвать метод API ВКонтакте users.get() – он возвращает инфу о пользователе, в т.ч. его аватарки. Т.к. запрос выполняется из JavaScript с домена вашего сайта на другой домен api.vk.com, это кроссдоменный запрос. В jQuery ajax нужно указать тип данных jsonp.

Запрос будет асинхронный, поэтому в функцию передаём id пользователя ВК и колбэк-функцию, которая будет вызвана, когда получим ответ от ВК со ссылкой на изображение:
function getPhoto( id, callback) {
	$.post({
			url: "https://api.vk.com/method/users.get",
			data: {
				 user_id: parseInt(id),
				 fields: "photo_100",
				 v: 5.63
			},
			dataType: "jsonp",
			success: function(r) {
			  if(r && r.response && r.response[0].photo_100) {
				  return callback(r.response[0].photo_100);
				} else {
				  console.log("No photo in response")
				}
			}
	});
}

function gotPhoto( url) {
  var img = $('<img>')
		.attr('width', 100)
		.attr('height', 100)
		.attr('src', url)
	;
	$('body').append(img);
	
}

getPhoto( 755074, gotPhoto);


fiddle
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ch1sel
@ch1sel
probability is extremely small
<body>
    <img id="ava" />
</body>

<script>
    function getAva(user_id) {
        $.ajax({
            url: 'https://api.vk.com/method/users.get?user_ids=' + user_id + '&fields=photo_max_orig',
            type: 'GET',
            dataType: 'jsonp',
            crossDomain: true,
            success: function(data) {

                var ava = data.response[0].photo_max_orig;
                document.getElementById("ava").setAttribute("src", ava);
            }
        });
    }
    getAva("ch1seL");
</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы