Получаем информацию из профиля «ВКонтакте» через открытый API на jQuery
С социальной сетью «ВКонтакте» я работаю уже давно. Что значит «работаю»? Это значит, что я пишу различные модули, где идет взаимодействие сайта с социальной сетью (получение последних записей из группы, отправка сообщений в группу, автоответчики), пишу различных ботов на заказ. Одна из последних моих работ в этой области – бесплатный бот-информер погоды.
Сегодня я хотел бы поговорить о том, как получить информацию из профиля «ВКонтакте» через открытый API. «Что такое открытый API?» – спросите вы. Это значит, что нам не нужно создавать приложение во «ВКонтакте» и получать специальный доступ к профилям, а хватит лишь загрузки данных с определенного URL и обработки полученной информации.
Всю информацию мы будем брать со следующего URL:
https://api.vk.com/method/getProfiles?uids=ID_пользователя_ВКонтакте&fields=uid,%20first_name,%20last_name,%20sex,%20bdate,%20city,%20country,%20photo_50,%20photo_100,%20photo_200_orig,%20photo_200,%20photo_400_orig,%20photo_max,%20photo_max_orig,%20online,%20lists,%20screen_name,%20has_mobile,%20contacts,%20education,%20universities,%20schools,%20can_post,%20can_see_all_posts,%20can_write_private_message,%20activity,%20last_seen,%20relation,%20counters,%20nickname,%20wall_comments,%20relatives,%20interests,%20movies,%20tv,%20books,%20games,%20about,%20connections
Здесь не забывайте «ID_пользователя_ВКонтакте» заменить на ID нужного вам пользователя.
А теперь более подобно рассмотрим, как именно получить информацию из профиля на jQuery.
Как я уже говорил ранее, использовать мы будем приведенный выше URL, будем обращаться к нему, получать данные через AJAX и после этого – обрабатывать полученную информацию.
Давайте посмотрим, как это будет выглядеть практически на примере моего профиля.
1. Если у вас не подключена библиотека jQuery, подключите ее (перед закрывающим тегом </head>):
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
2. Далее, перед закрывающим тегом </body> вставляем скрипт, который будет получать необходимую информацию из профиля (в нашем случае мы будем получать имя):
<script>
$(document).ready(function() {
$.ajax({
url: "https://api.vk.com/method/getProfiles?uids=188031076&fields=uid,%20first_name,%20last_name,%20sex,%20bdate,%20city,%20country,%20photo_50,%20photo_100,%20photo_200_orig,%20photo_200,%20photo_400_orig,%20photo_max,%20photo_max_orig,%20online,%20lists,%20screen_name,%20has_mobile,%20contacts,%20education,%20universities,%20schools,%20can_post,%20can_see_all_posts,%20can_write_private_message,%20activity,%20last_seen,%20relation,%20counters,%20nickname,%20wall_comments,%20relatives,%20interests,%20movies,%20tv,%20books,%20games,%20about,%20connections",
dataType: "jsonp",
success: function(e) {
var first_name = e.response[0].first_name; // Имя
$("#profile_info").html("<b>Имя:</b> "+first_name);
}
});
});
</script>
3. В нужное место, куда будет выводиться информация, вставьте:
<div id="profile_info"></div>
Если вы все сделали правильно, должна получиться следующая картина:
Вот таким простым способом мы получили имя человека по его ID.
Что еще можно получить таким способом?
Приведу вам несколько примеров получения основной информации:
var uid = e.response[0].uid; // ID
var first_name = e.response[0].first_name; // Имя
var last_name = e.response[0].last_name; // Фамилия
var sex = e.response[0].sex; // Пол, где: 0 - не указан, 1 - женский, 2 - мужской
var nickname = e.response[0].nickname; // Ник
var screen_name = e.response[0].screen_name; // Имя страницы
var bdate = e.response[0].bdate; // Дата рождения
var city = e.response[0].city; // ID Города
var country = e.response[0].country; // ID Страны
var photo_max_orig = e.response[0].photo_max_orig; // Ссылка на оригинальную фотографию
var online = e.response[0].online_mobile; // Статус пользователя, где 1 - в сети, 0 - не в сети
var skype = e.response[0].skype; // Skype
var activity = e.response[0].activity; // Статус пользователя, указанный под именем
var last_seen = e.response[0].last_seen.time; // Дата последнего посещения (Unix Time)
var albums = e.response[0].counters.albums; // Количество фотоальбомов
var videos = e.response[0].counters.videos; // Количество видеозаписей
var audios = e.response[0].counters.audios; // Количество аудиозаписей
var notes = e.response[0].counters.notes; // Количество заметок
var photos = e.response[0].counters.photos; // Количество фотографий
var groups = e.response[0].counters.groups; // Количество групп
var gifts = e.response[0].counters.gifts; // Количество подарков
var followers = e.response[0].counters.followers; // Количество подписчиков
var interests = e.response[0].interests; // Интересы
var movies = e.response[0].movies; // Любимые фильмы
var tv = e.response[0].tv; // Любимые телешоу
var books = e.response[0].books; // Любимые книги
var games = e.response[0].games; // Любимые игры
var about = e.response[0].about; // Информация "О себе"
Если вам нужно получить какую-то определенную информацию, которую я не привел в примере, то посмотрите ответ от «ВКонтакте» (для этого перейдите по предложенному выше URL) и по аналогии с примером получите информацию из массива данных. Или же перейдите в официальную документацию «ВКонтакте», где также описаны все параметры пользователя, которые можно получить без авторизации.
Обратите внимание, что если некоторая информация не приходит в ответе - то она либо скрыта настройками приватности, либо вообще не указана.
Если у вас возникли трудности с получением информации – напишите об этом в комментариях, я постараюсь вам помочь. А уже в следующей статье читайте, как все это можно реализовать на PHP.