Список друзей vk api

Для проверки текущего статуса пользователя существует метод VK.Auth.getLoginStatus. Задействуем его, чтобы определить, авторизирован ли пользователь, и скрыть/показать необходимые из описанных выше блоков. Также, если пользователь уже авторизирован, сразу перейдем к началу игру. В метод VK.Auth.

VK.Auth.getLoginStatus(function(response) < if(response.session) < // пользователь авторизирован >else < // пользователь не авторизирован >>);

Для вызова любого метода ВКонтакте API служит метод VK.Api.call, который принимает три параметра — название метода, объект, представляющий собой параметры, передаваемые в указанный метод, и callback-функцию, в которую будет передан результат вызова метода.

Для получения списка друзей необходимо вызвать метод friends.get. Метод не имеет обязательных параметров и в случае вызова без параметров вернет список всех друзей. Поскольку нам нужны фотографии друзей пользователя, передадим в метод параметр fields со значением ‘photo_rec’, что соответствует квадратной фотографии со стороной 50 пикселей:

Работа с API VK (Вконтакте) через JavaScript. Урок 1. Вывод списка друзей


VK.Api.call(‘friends.get’, < fields: ‘photo_rec’ >, function(data)< // обработка списка друзей >);

В случае возникновения ошибки, объект data будет содержать вложенный объект error, содержащий информацию об ошибке. Ошибка с кодом 7 говорит о том, что у приложения не хватает прав, то есть в нашем случае о том, что пользователь не разрешил доступ к списку друзей.

Если вызов метода завершен успешно, то объект data будет содержать поле response, которое является массивом объектов, каждый из которых представляет информацию об одном из друзей пользователя.

После того, как список друзей получен, отбираем из него тех, у кого задана фотография (то есть не является стандартной картинкой со знаком вопроса) и переходим к инициализации игры:

Авторизация

Для авторизации пользователя добавим обработчик для ссылки a#vk-login, который будет вызывать метод VK.Auth.login. Первым параметром передается callback-функция, а вторым — необходимые пользовательские настройки приложения, которые являются перечнем необходимых уровней доступа. В нашем случае необходим доступ только к списку друзей, поэтому обработчик для ссылки будет выглядеть так:

$(‘a#vk-login’).click(function(event)< event.preventDefault(); VK.Auth.login(null, VK.access.FRIENDS); >);

Завершение сеанса

Для того, чтобы пользователь мог завершить сессию, добавим обработчик для ссылки a#vk-logout, который будет вызывать метод VK.Auth.logout. Первым параметром передается callback-функция, которая в нашем случае будет обновлять страницу:

$(‘a#vk-logout’).click(function(event)< event.preventDefault(); VK.Auth.logout(function()< refreshPage(false); >); >);

Инициализация open api

Важной частью скрипта является инициализация API, которая заключается в вызове метода VK.init, в который передается объект, содержащий минимум одно поле — apiId — ID приложения (он отображается на странице настроек приложения):

SwiftUI + VK api. Авторизация и список друзей ВК


VK.init(< apiId: 2151186 >);

Набор квадратных кнопок

Так же если вам не нравятся круглые кнопки, предложу вариант квадратных кнопок:

Для применения квадратных кнопок нужно всё тоже самое что и для круглых, только в CSS заменить в 10-строчке значение и вместо:

border-radius: 24px;
border-radius: 6px;

Надеюсь вам понравится мой вариант и оформление кнопок для соцсетей. Ну а если у вас возникли трудности, то можете задавать свои вопросы ниже в комментариях.

Записи по теме

Набор круглых кнопок

Посидел денёк подбирая тени и стили для кнопок соцсетей. Теперь вот хочу поделиться с вами своим вариантом круглых кнопочек соцсетей:

Еще по теме:  Когда человек зарегистрировался в ВК

Чтобы вставить кнопки на сайт, добавьте через HTML код нужных вам соцсетей.

Отслеживание событий

Для того, чтобы перейти к игре (в нашем случае это заключается в обновлении страницы) после того как пользователь прошел авторизацию, необходимо подписаться на событие auth.login. Также подпишемся на событие auth.sessionChange, оно будет генерироваться, когда изменяются данные, связанные с авторизацией пользователя.

Это необходимо для того, чтобы перейти к игре в том случае, если пользователь уже авторизирован ранее и только подтверждает доступ к списку друзей. Для добавления обработчика события необходимо вызвать метод VK.Observer.subscribe, который принимает два параметра — событие, на которое необходимо подписаться, и callback-функцию — обработчик события:

VK.Observer.subscribe(‘auth.login’, function(response)< refreshPage(true); >); VK.Observer.subscribe(‘auth.sessionChange’, function(response)< refreshPage(true); >);

Метод refreshPage обновляет страницу, если пользователь не был ранее успешно авторизован:

function refreshPage(checkLogged) < if((checkLogged !isLogged) || !checkLogged) < location.href = ‘index.html’; >>

Подготовка игрового процесса

Подготовка игрового процесса заключается в том, что мы отбираем случайным образом необходимое количество фотографий (если у пользователя недостаточно друзей, информируем его об этом) и формируем таблицу, которая заполнена «обратной стороной» фотографий. Для каждой ячейки-фотографии добавляем обработчик, который при нажатии на фотографию:

В случае успешного хода вызывается метод ВКонтакте API getProfiles, который возвращает информацию об указанных пользователях. Список пользователей, для которых необходимо получить информацию, передается в качестве параметра uids. Вызов этого метода используется для отображения имени и ссылки на профиль пользователя, который был успешно отгадан.

Получаем информацию из профиля «вконтакте» через открытый api на jquery

С социальной сетью «ВКонтакте» я работаю уже давно. Что значит «работаю»? Это значит, что я пишу различные модули, где идет взаимодействие сайта с социальной сетью (получение последних записей из группы, отправка сообщений в группу, автоответчики), пишу различных ботов на заказ. Одна из последних моих работ в этой области – бесплатный бот-информер погоды.

Сегодня я хотел бы поговорить о том, как получить информацию из профиля «ВКонтакте» через открытый API. « Что такое открытый API ?» – спросите вы. Это значит, что нам не нужно создавать приложение во «ВКонтакте» и получать специальный доступ к профилям, а хватит лишь загрузки данных с определенного URL и обработки полученной информации.

Всю информацию мы будем брать со следующего URL:

https://api.vk.com/method/getProfiles?uids=ID_пользователя_ВКонтакте $.ajax(< url: «https://api.vk.com/method/getProfiles?uids=188031076, dataType: «jsonp», success: function(e) < var first_name = e.response[0].first_name; // Имя $(«#profile_info»).html(«Имя: » first_name); > >); >);

3. В нужное место, куда будет выводиться информация, вставьте:

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

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

Приступаем к работе

Прежде всего необходимо

, указав его название и тип.

После этого переходим к настройкам приложения и указываем адрес сайта и базовый домен.

Реализация

Создадим HTML страницу, которая будет содержать несколько блоков:

Результат

Итоговый файл general.js можно посмотреть

, сама игра доступна по ссылке

Список чемпионов

Для получения таблицы рекордов используется метод getHighScores, который не имеет параметров. Метод возвращает массив объектов, каждый из которых содержит информацию о пользователе и его рекорд.

Чтобы пользователь мог посмотреть таблицу рекордов, добавим обработчик ссылки a#game-scores, который будет вызывать указанный выше метод, формировать таблицу результатов и показывать ее в диалоговом окне:

Ссылка на соц сеть

Теперь чтобы вставить ссылку на ваш профиль, канал или группу – нужно в атрибуте href вместо символа # вставить ссылку на вашу соцсеть. Будьте внимательны чтобы не удалить двойную кавычку, которая должна быть перед и в конце ссылки.

Источник: tvoyvk.ru

H Анализ дружеских связей VK с помощью Python. Часть первая. Друзья друзей в черновиках

В предыдущей статье мы на основе общих друзей ВКонтакте строили граф, а сегодня поговорим о том, как получить список друзей, друзей друзей и так далее. Предполагается, что вы уже прочли предыдущую статью, и я не буду описывать все заново.

Начнем с того, что просто скачать все id пользователей достаточно легко, список валидных id можно найти в Каталоге пользователей Вконтакте. Наша же задача — получить список друзей выбранного нами id пользователя, их друзей и рекурсивно сколь угодно глубоко, в зависимости от указанной глубины.

Код, опубликованный в статье, будет меняться с течением времени, поэтому более свежую версию можно найти в том же проекте на Github.

Как будем реализовывать:

  • Задаем нужную нам глубину
  • Отправляем исходные данные либо те id, которые надо исследовать на данной глубине
  • Получаем ответ
  • Python 3.4
  • Хранимые процедуры в ВКонтакте

Задаем нужную нам глубину

Что нам потребуется в начале — это указать глубину (deep), с которой мы хотим работать. Сделать можно это сразу в main.py:

print(a.deep_friends(2)) # такая строчка там уже есть

deep равное 1 — это наши друзья, 2 — это друзья наших друзей и так далее. В итоге мы получим словарь, ключами которого будут id пользователей, а значениями — их список друзей.

Не спешите выставлять большие значения глубины. При 14 моих исходных друзьях и глубине равной 2, количество ключей в словаре составило 2427, а при глубине равной 3, у меня не хватило терпения дождаться завершения работы скрипта, на тот момент словарь насчитывал 223.908 ключей. По этой причине мы не будем визуализировать такой огромный граф, ведь вершинами будут ключи, а ребрами — значения.

Еще по теме:  Как девушку влюбить в себя по переписке примеры диалогов Вконтакте

Отправление данных

Добиться нужного нам результата поможет уже известный метод friends.get, который будет расположен в хранимой процедуре, имеющей следующий вид:

var targets = Args.targets; var all_friends = <>; var req; var parametr = «»; var start = 0; // из строки с целями вынимаем каждую цель while(start

Напоминаю, что хранимую процедуру можно создать в настройках приложения, пишется она на VkScript, как и execute, документацию можно прочесть здесь и здесь.

Теперь о том, как она работает. Мы принимаем строку из 25 id, разделенных запятыми, вынимаем по одному id, делаем запрос к friends.get, а нужная нам информация будет приходить в словаре, где ключи — это id, а значения — список друзей данного id.

При первом запуске мы отправим хранимой процедуре список друзей текущего пользователя, id которого указан в настройках. Список будет разбит на несколько частей (N/25 — это и число запросов), связано это с ограничением количества обращений к API ВКонтакте.

Получение ответа

Всю полученную информацию мы сохраняем в словаре, например:

Ключи 1, 2 и 3 были получены при глубине равной 1. Предположим, что это и были все друзья указанного пользователя (0).

Если глубина больше 1, то далее воспользуемся разностью множеств, первое из которых — значения словаря, а второе — его ключи. Таким образом, мы получим те id (в данном случае 0 и 4), которых нет в ключах, разобьем их опять на 25 частей и отправим хранимой процедуре.

Тогда в нашем словаре появятся 2 новых ключа:

Сам же метод deep_friends() выглядит следующим образом:

def deep_friends(self, deep): result = <> def fill_result(friends): for i in VkFriends.parts(friends): r = requests.get(self.request_url(‘execute.deepFriends’, ‘targets=%s’ % VkFriends.make_targets(i))).json()[‘response’] for x, id in enumerate(i): result[id] = tuple(r[x][«items»]) if r[x] else None for i in range(deep): if result: # те айди, которых нет в ключах + не берем id:None fill_result(list(set([item for sublist in result.values() if sublist for item in sublist]) — set(result.keys()))) else: fill_result(requests.get(self.request_url(‘friends.get’, ‘user_id=%s’ % self.my_id)).json()[‘response’][«items»]) return result

Конечно, это быстрее, чем кидать по одному id в friends.get без использования хранимой процедуры, но времени все равно занимает порядочно много.

В заключение

Если бы friends.get был похож на users.get, а именно мог принимать в качестве параметра user_ids, то есть перечисленные через запятую id, для которых нужно вернуть список друзей, а не по одному id, то код был бы намного проще, да и количество запросов было в разы меньше.

Данные мы собрали, сегодня на этом все. Далее мы будем с этими данными играться.

Источник: sohabr.net

Необходимо получить список пользователя вконтакте по uid

Я пробовал использовать метод friends.get. Но мне возвращается список моих друзей, вне зависимости от uid. В теории должны возвращаться друзья указанного пользователя. Общая задача: Есть список пользователей. Необходимо получить кол-во друзей и подписчиков, а так же кол-во «собачек». Я не понимаю, что я делаю не так

import requests from VK_parsing_data import offset i = 0 for user in users: print(user) member_request_params = ( (‘user_ids’, user), (‘order’, ‘name’), (‘count’, 1000), (‘offset’, offset), (‘fields’, ‘last_seen’), (‘version’, 5.74)) r = requests.get(‘https://api.vk.com/method/friends.get’, params=member_request_params).json() print(user, r)

Отслеживать

6,323 4 4 золотых знака 24 24 серебряных знака 52 52 бронзовых знака

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...