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

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

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

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

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

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

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

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

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

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

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

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

Что такое DSL?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Авторизация через 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

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

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

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

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

Авторизация через 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

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

Авторизация через 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

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

Токены

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

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

Структура запроса профилей 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 – в этом поле указывает токен, который мы получили при авторизации

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

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

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

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

Структура запроса профилей 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-запросом

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

Структура запроса профилей 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);