Сам себе АНБ, api социальных сетей

Post on 22-May-2015

1.042 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Сам себе АНБ.API Социальных сетей.

Зачем нужно изучать API?

Очевидно, что социальная сеть дает доступ к личным данным пользователей и позволяет собирать эти данные для каких-либо целей

Что мы можем сделать с этими данными?

Сбор данных о пользователях может дать возможность анализа профилей пользователей, строить на этом на какие-либо аналитические модели, например,для таргетирования рекламы, скорринг, построение статистики, яркие примеры такие проекты как dsl, lenddo.com

Что такое DSL?

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

• Профилирование рекламы в соцсетях по богатому набору признаков

• Аналитика и мониторинг эффективности SSM продвижения

• Профилирование и обогащение клиентских баз: CRM profiling, E-Commerce profilling

• Поиск персонала в соцсетях

• Банковский скоринг

Что такое lenddo.com?

На Филиппинах и в Колумбии действует проект Lenddo.com, позволяющий получить кредит по профилю в социальных сетях. Средний размер займа составляет $400 на Филиппинах и $800 в Колумбии. Для получения кредита необходимо заполнить заявку на сайте, загрузить фотографию и дать ссылки на имеющиеся профили в соцсетях (Facebook, Twitter, LinkedIn, Google+), а также пригласить друзей и родственников из социальных сетей, чтобы они взяли такой же кредит.

Что значит приватный краулинг?

Здесь мы подразумеваем, что пользователь сам нам предоставляет свои данные, через авторизацию нашего приложения

Приложение в Одноклассниках

А вот самая настоящая проблема, так это создать приложение в ОК.

Нужно завести аккаунт на apiok.ru для этого нужно заполнить форму разработчикаи ждать, когда дадут доступ к жире.

Потом завести таск на создание приложения.

Потом запросить VALUABLE_ACCESS, чтобы иметь расширенный доступ.

И это еще не все, пока неизвестно как получить права на интересы пользователя.

Авторизация через OAuth

Все три соц. сети используют авторизацию через OAuth, однако, у всех она реализована по каким-то своим правилам. Стандартные шаги заключаются вследующей последовательности:1. Пользователь авторизовывается на сайте по ссылке, в которой указан

response=code и redirect uri2. Сервер по redirect uri получает code, потом отправляет GET-запрос на

получение токена3. После запроса получает JSON с токеном, временем жизни токена и код

для рефреша токена

Авторизация через OAuth

Авторизация через OAuth

https://oauth.vk.com/authorize?client_id=$client_id&scope='friends,photos,audio,video,docs,notes,pages,status,wall,groups,offline'&redirect_uri=some_url

Авторизация через OAuth

http://www.odnoklassniki.ru/oauth/authorize?client_id=$client_id&scope='VALUABLE ACCESS'&response_type=code&redirect_uri=some_url

Авторизация через OAuth

https://www.facebook.com/dialog/oauth?client_id=$client_id&redirect_uri=some_url&response_type=code&scope=read_friendlists, read_insights, read_mailbox, read_requests, read_stream, manage_friendlists, manage_notifications, user_online_presence, friends_online_presence, user_about_me, user_activities, user_birthday, user_checkins, user_education_history, user_events, user_groups, user_hometown, user_interests, user_likes, user_location, user_notes, user_photos, user_questions, user_relationships, user_relationship_details, user_religion_politics, user_status, user_subscriptions, user_videos, user_website, user_work_history, friends_about_me, friends_activities, friends_birthday, friends_checkins, friends_education_history, friends_events, friends_groups, friends_hometown, friends_interests, friends_likes, friends_location, friends_notes, friends_photos, friends_questions, friends_relationships, friends_relationship_details, friends_religion_politics, friends_status, friends_subscriptions, friends_videos, friends_website, friends_work_history

Авторизация через OAuth

После чего для FB и vk.com нужно сделать GET-запрос на токен, а в одноклассниках POST-запрос.Вам возвращается ответ, в ОК и ВК получаем ответ в виде JSON, а в ФБ в виде query-строки в формате «a=b&c=d».От ФБ Вы получите данные в виде:access_token, expiresОт Вк:access_token, expires_in, user_idОт ОК:access_token, token_type, refresh_token

Токены

Любой токен прекращает свое действие после смены логины, пароля или удаления приложения, по истечению времени жизни.В ФБ бывают два вида токена, короткоживущие и долгоживущие, короткоживущие их время не более 3-4 часов, можно сделать рефреш, но не более месяца в совокупности.Долгоживущие – месяц или два, но нельзя сделать рефреш.В ВК дается токен на 24 часа, говорят, что можно сделать рефреш, но нигде это неописано. Также можно получить «бесконечный» токен, однако дается только standalone и mobile приложениям.В ОК токен дается на полчаса всего, дальше нужно сделать рефреш токена, в документации описано, что в сумме не больше месяца дается доступ.

Структура запроса профилей vk.com

https://api.vk.com/method/ - адрес APIusers.get – endpoint для запроса профилей, без указания uids возвращает профиль собственного юзераПоле fields – какие поля нам нужно запросить у пользователяВозможные значения: «nickname,screen_name,sex,bdate,city,country,timezone,photo_50,photo_100,photo_200_orig,has_mobile,contacts,education,online,counters,relation,last_seen,status,can_write_private_message,can_see_all_posts,can_see_audio,can_post,universities,schools,verified,place,interests,movies,tv,books,games,about,music,relatives,connections»Поле access_token – в этом поле указывает токен, который мы получили при авторизации

Ограничения на использование API VK

У Вконтакте есть такая особенность как троттлинг и он возникает, если слишкомчасто делать запросы к серверам вконтакта, для приложения до 10 000 польз.это может примерно быть 2-3 запроса в секунду максимум, чем больше Пользователей, тем больше запросов можно сделать.

Структура запроса профилей odnoklassniki.ru

http://api.odnoklassniki.ru/fb.do - адрес APIПараметры: - application_key – Публичный ключ приложения (Находится в настройках приложения)- method – Метод API(в данном случае users.getInfo)- fields – поля, которые нужно вернуть в профиле: "uid,first_name,last_name,name,gender,"+ "birthday,online,age,locale,location,current_location,"+ "current_status,current_status_id,current_status_date,"+ "pic_1,pic_2,url_profile,url_chat,has_email,allows_anonym_access«-access_token – токен доступаsig – сигнатура, что-то типа контрольной суммы String strSignature = Utils.getMD5Hash(strRequestParams+ Utils.getMD5Hash(token + appSecretKey)); здесь strRequestParams – это параметры запроса, кроме access_token и sig, appSecretKey – секретный ключ приложения.И ВНИМАНИЕ!!! Все это делается POST-запросом

Структура запроса профилей facebook.com

Для организации запроса к facebook.com использовалась библиотека restfb.

private FacebookClient getFacebookClient(String token) {return new DefaultFacebookClient(token);}

FacebookClient facebookClient = getFacebookClient(token);com.restfb.types.User userJson = facebookClient.fetchObject(userId,com.restfb.types.User.class);

top related