Получить список друзей пользователя vk api

image

Привет, хабраюзер.
Однажды у меня возникла необходимость найти человека, зная его внешний вид и зная о его членстве в определенном клубе. Также я владел адресами(вконтакте) страниц двух других членов клуба. Почти наверняка искомый человек был у каждого из них в друзьях. Решить эту проблему можно было разными путями. В статье я напишу о том, как мной было реализовано решение с использованием vk.com API.

1.Задача

Сделать сервис, который будет находить всех общих друзей двух отдельно взятых пользователей, не требуя верификации и аккаунта в социальной сети для пользователей сервиса. Получить данные об общих друзьях:

Реализовать задание на базе API вконтакте. Написать отельный класс для этого.

2.Решение
2.1.Определяем необходимые методы API

Заходим в список методов API. И поискав, находим то, что нам нужно.

Для получения друзей пользователя есть метод friends.get.

VK API appsgetFriendsList выбираем список друзей в приложение и доступных для приглашения вконтакте


friends.get — возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра fields).

И, что важно, в рамках решения поставленной задачи это открытый метод, не требующий access_token.

image

Обязательный параметр только один:

Используя данный метод, можно получить информацию обо всех друзьях каждого из двух наших множеств, но такой подход не будет оптимальным. Пользователь А может иметь 2000 людей в друзьях, пересекаться с друзьями пользователя В будут только 3 человека. В таком случае информация о 1997 пользователях будет нам ненужной, и ресурсы, затраченные на её получение, будут потрачены впустую.
Мы будем запрашивать исключительно идентификаторы пользователей, и получив нужные нам номера(которые принадлежат множеству А и В), уже по ним выбирать информацию.

Для получения информации о пользователе есть метод users.get.
users.get — Возвращает расширенную информацию о пользователях.

image

Данный метод также не нуждается в access_token, то есть идеально подходит для нашей задачи.

В user_ids мы передадим массив идентификаторов пользователей, которые встречаются в обоих множествах.
Мы хотим получить только аватар размером 100*100, для этого в параметре fields передадим значение photo_100.

2.2.Переходим к практической стороне

Я написал простой класс на php:

class VkFriends < public function clean_var($var) < $var = strip_tags($var); $var = preg_replace(‘~D+~’, », $var); $var = trim($var); return $var; >public function get_friends($u_id) < $friends = file_get_contents(‘https://api.vk.com/method/friends.get?user_id=’.$u_id); $friends = json_decode($friends); if(!isset($friends->error))< return $friends; >else < return »; >> public function mutual_friends($friends) < $mutual = array_intersect($friends[0]->response, $friends[1]->response); if(!empty($mutual))< return $mutual; >else < return »; >> public function get_users_info($users) < $u_ids = implode(«,»,$users); $u_info = file_get_contents(‘https://api.vk.com/method/users.get?user_ids=’.$u_ids.’ $u_info = json_decode($u_info); return $u_info; >public function view_user_info($u_info) < $uid = $u_info->uid; $first_name = $u_info->first_name; $last_name = $u_info->last_name; = $u_info->photo_100; print(» $first_name

Еще по теме:  Как получить токен от страницы ВК

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


$last_name «); > public function view_users_info($users_info) < for($i=0;$iresponse);$i++)< $this->view_user_info($users_info->response[$i]); > > >

Теперь смотрим на наш класс в действии:

$vkf = new VkFriends; $u_id[0] = $vkf->clean_var($_POST[«u1»]);//clean variables from POST $u_id[1] = $vkf->clean_var($_POST[«u2″]); if(($u_id[0]!=»)($u_id[1]!=»))< echo ‘get_friends($u_id[0]);//getting friends list from user with u_id $friends[1] = $vkf->get_friends($u_id[1]); if(($friends[0]!=»)($friends[1]!=»))< $mutual = $vkf->mutual_friends($friends);//create new array from intersect arrays if($mutual!=»)< $users_info = $vkf->get_users_info($mutual);//getting info about users that are mutual $vkf->view_users_info($users_info);//view information about selected users >else< print(«

Общих друзей нет

«); > >else< print(«

Один из пользователей не доступен

«); > echo »; >

3.Резюме

Рабочий пример можно увидеть на 13c.me.
Ссылка на репозиторий GitHub — vkfriends.

Спасибо, что читали,
искренне надеюсь, что вам было интересно.

Источник: savepearlharbor.com

Находим общих друзей людей с использованием VK API

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

В статье я напишу о том, как мной было реализовано решение с использованием vk.com API.

1.Задача

Сделать сервис, который будет находить всех общих друзей двух отдельно взятых пользователей, не требуя верификации и аккаунта в социальной сети для пользователей сервиса. Получить данные об общих друзьях:

Реализовать задание на базе API вконтакте. Написать отельный класс для этого.

2.Решение
2.1.Определяем необходимые методы API

Заходим в список методов API. И поискав, находим то, что нам нужно.
Для получения друзей пользователя есть метод friends.get. friends.get


возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра fields).
И, что важно, в рамках решения поставленной задачи это открытый метод, не требующий access_token.

Обязательный параметр только один:

Используя данный метод, можно получить информацию обо всех друзьях каждого из двух наших множеств, но такой подход не будет оптимальным. Пользователь А может иметь 2000 людей в друзьях, пересекаться с друзьями пользователя В будут только 3 человека. В таком случае информация о 1997 пользователях будет нам ненужной, и ресурсы, затраченные на её получение, будут потрачены впустую. Мы будем запрашивать исключительно идентификаторы пользователей, и получив нужные нам номера(которые принадлежат множеству А и В), уже по ним выбирать информацию.

Еще по теме:  Антикапча Вконтакте что это

Для получения информации о пользователе есть метод users.get. users.get


Возвращает расширенную информацию о пользователях.
Данный метод также не нуждается в access_token, то есть идеально подходит для нашей задачи.

В user_ids мы передадим массив идентификаторов пользователей, которые встречаются в обоих множествах. Мы хотим получить только аватар размером 100*100, для этого в параметре fields передадим значение photo_100.

2.2.Переходим к практической стороне

«); > public function view_users_info($users_info) < for($i=0;$iresponse);$i++)< $this->view_user_info($users_info->response[$i]); > > >

Теперь смотрим на наш класс в действии:

$vkf = new VkFriends; $u_id[0] = $vkf->clean_var($_POST[«u1»]);//clean variables from POST $u_id[1] = $vkf->clean_var($_POST[«u2″]); if(($u_id[0[0]»)($u_id[1[1]»))< echo ‘

‘; $friends[0[0] $vkf->get_friends($u_id[0[0]//getting friends list from user with u_id $friends[1[1] $vkf->get_friends($u_id[1[1] if(($friends[0[0]»)($friends[1[1]»))< $mutual = $vkf->mutual_friends($friends);//create new array from intersect arrays if($mutual!=»)< $users_info = $vkf->get_users_info($mutual);//getting info about users that are mutual $vkf->view_users_info($users_info);//view information about selected users >else< print(«

как найти, узнать и добавить?

Возможно, вам интересно просмотреть общих друзей, которых вы имеете с определенным человеком. Например, это может быть полезным для поиска новых знакомств. Найти их Вконтакте довольно просто. Для этого необходимо всего лишь зайти на страницу друга или незнакомого человека, и под его основной аватаркой сразу будет находиться раздел «общие друзья», где будет показано количество таких людей, а также кто входит в этот список. Если данный раздел отсутствует, значит, у вас нет общих знакомых с этим человеком, или, по крайней мере, их нет в списке контактов.

Просмотр общих друзей

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

Просмотр количества общих друзей

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

Понравилась статья? Поделиться с друзьями:

Как посмотреть общих друзей в Одноклассниках

Для того, чтобы посмотреть общих друзей необходимо выполнить ряд действий:

На главной странице своего профиля зайти в раздел «Друзья» и кликнуть на аватарку пользователя, с которым требуется узнать общих друзей.

Откроется главная страница друга. Справа от его фото необходимо нажать на «Друзья».

Высветится список друзей пользователя. Слева от него будет находиться графа «Общие друзья», под которой и будут указаны все искомые пользователи.

Общие друзья Вконтакте

Наверняка многие активные пользователи Вконтакте при заходе на чужую страницу замечали над списком друзей список под названием «Общие друзья»:

Еще по теме:  Как Вконтакте отступить строку

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

Общие друзья Вконтакте

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

Открыв данный список, Вы заметите несколько своих друзей, которые являются и друзьями данного человека. Всё очень просто и понятно:

Именно общие друзья формируют раздел «Возможные друзья». Таким образом Вы можете найти возможных друзей, то есть тех, которые не состоят в списке друзей, но имеют общих с Вами друзей. Надеюсь, что Вы не запутались

Источник: winac.su

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Помогите вывести полный список друзей с vk.com ?

#1 Апрель 8, 2014 16:31:27

Помогите вывести полный список друзей с vk.com ?

Проблема состоит в том, что результат, который выводит код скрипта, является неполным. Если например друзей
250, то выводит 30. Я так понимаю, что это все заключается в специфике конструкции сайта: “данные загружаются только при пролистывании страницы вниз”. Помогите разобраться.

Использую Selenium Webdriver + Python

import unittest from selenium import webdriver class TestPriceUa(unittest.TestCase): driver = None def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(60) def test_filter(self): self.driver.get(«http://vk.com») self.driver.find_element_by_id(«quick_email»).send_keys(‘INPUT LOGIN’) self.driver.find_element_by_id(«quick_pass»).send_keys(‘INPUT PASSWORD’) self.driver.find_element_by_id(«quick_login_button»).click() self.driver.find_element_by_id(«l_fr»).click() friends = self.driver.find_elements_by_css_selector(‘.friends_field>a>b’) for list in friends: print (list.text) #def tearDown(self): #self.driver.close() if __name__ == «__main__» : unittest.main()

Я не могу разобраться, как мне вытащить и вывести список всех друзей

#2 Апрель 8, 2014 18:55:48

Помогите вывести полный список друзей с vk.com ?

Возможно поможет API

# -*- coding: utf-8 -*- import vk_api import time def main(): global response login = u’*********’ password = u’*******’ try: vk = vk_api.VkApi(login, password) # Авторизируемся except vk_api.authorization_error as error_msg: print(error_msg) # В случае ошибки выведем сообщение return # и выйдем response = vk.method(‘newsfeed.get’) # Используем метод t=(response[‘items’][1]) # Печатаем текст последней новости def text_all():#перебор текста новостей token=’text’ n=response[‘items’] for i in n: if token in i: print i[token] #print i[‘comments’] dat= i[‘date’] print time.ctime(int(dat)) print ‘___________________________________________________________________’ text_all() try: print t[‘text’] except: pass if __name__ == ‘__main__’: main()
# -*- coding: cp1251 -*- import vk_api def main(): login = u’******’ password = u’******’ try: vk = vk_api.VkApi(login, password) # Авторизируемся except vk_api.authorization_error as error_msg: print(error_msg) # В случае ошибки выведем сообщение return # и выйдем response = vk.method(‘friends.get?fields=»nickname»‘) # Используем метод #print response token=’first_name’ last = ‘last_name’ for i in response: print i[token],i[last] #выводим список друзей if __name__ == ‘__main__’: main()

Отредактировано sanodin (Апрель 9, 2014 10:05:33)

Источник: python.su

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