Граф дружеских связей в vk.com. common friends
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
web v0.0.2 Apr 17, 2014
.gitignore
2d3.py
HISTRORY.rst v2.0.0 Nov 14, 2014
LICENSE
README.md readme fix Nov 14, 2014
call.py
celery_app.py
execute_deepFriends.js v0.0.10 Jul 6, 2014
execute_getMutual.js
graph.py
lib.py
main.py
settings.py
tasks.py

README.md

vk_friends

Граф дружеских связей в vk.com. Больше инфы можно прочитать здесь и здесь. Если вам нужен старый релиз, то он тут. Перед тем, как что-то делать, рекомендую прочесть всю документацию.

##Что нужно

##Первые шаги

Для начала необходимо создать Standalone-приложение в VK. Делается это там. В итоге попросят ввести код-подтверждения, высланный на мобильный, после чего мы попадаем на страницу управления приложением. На вкладке Настройки нам пригодится ID приложения для получения access_token.

Чтобы его получить необходимо сформировать url:

https://oauth.vk.com/authorize?client_id=IDприложения&scope=friends,offline&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.21&response_type=token

Если адрес сформирован правильно, переходим по нему и получаем нечто вроде:

https://oauth.vk.com/blank.html#access_token=ACCESS_TOKEN&expires_in=0&user_id=USER_ID

После этого редактируем файл settings.py, вставляя туда полученные access_token и user_id.

Далее переходим по ссылке https://vk.com/editapp?id=IDприложения&section=functions и создаем хранимую процедуру getMutual. Копируем содержимое execute_getMutual.js в форму и сохраняем.

Для получения глубинного списка друзей (друзья-друзей и т.д.) проделываем те же самые действия с execute_deepFriends.js, назвав хранимую процедуру deepFriends.

Ура!

##RabbitMQ & Celery

После их установки необходимо создать virtual host для RabbitMQ:

rabbitmqctl add_vhost vk_friends
rabbitmqctl add_user user password
rabbitmqctl set_permissions -p vk_friends user ".*" ".*" ".*"

Далее в конфигурационном файле RabbitMQ (у меня это /usr/local/etc/rabbitmq/rabbitmq-env.conf) указать ip, на котором он установлен:

NODE_IP_ADDRESS=192.168.1.14 // example

В settings.py заполнить:

broker/backend - словари, содержащие информацию для доступа к брокеру и бэкенду

в соответствии с данными, введенными выше.

##Что дальше

Запускаем RabbitMQ:

rabbitmq-server

Затем воркера (из папки проекта):

celery -A tasks worker --loglevel=info

Воркеров может быть несколько.

Если вы все настроили правильно и нет никаких сообщений об ошибках, то:

python call.py

1 - Общие друзья, 2 - Друзья-друзей и тд, в зависимости от глубины (deep - в settings.py).

После первого запуска результат сохраняется в файлах _dct. Теперь можно рисовать/анализировать графы. По-умолчанию, graph.py работает с "глубинными друзьями". После запуска

python graph.py

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

deep_friends.draw_graph()

##Полезности В settings.py можете вбить id любого интересующего вас человека.