Информер курса валют ЦБ РФ   •   Магазин расширений
4 320 просм
2 комм
Поделиться:

Получаем информацию из профиля «ВКонтакте» через открытый 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> 

Если вы все сделали правильно, должна получиться следующая картина:

Получаем информацию из профиля «ВКонтакте» через открытый API на jQuery

Вот таким простым способом мы получили имя человека по его 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.

2
комментария
Пашка
22.02 в 06:22
ТЕМА ТОП ПОБОЛЬШЕ БЫ ТАКИХ ЛЮДЕЙ КАКАртем Мáлков
  • 0
На сколько мне известно, инструкция более не актуальна, так как для получения данных требуется персональный access_token
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.