SlideShare a Scribd company logo
Работа с соцсетями
Олег Годовых
Работа с соцсетями
Почти у всех крупных соцсетей есть сладкая пара:
Авторизация через OAuth
Запросы через REST API или RPC-style API.
Дополнительно:
Может быть свой SDK, но зачастую (например — у
Facebook) это обёртка поверх того же API.
Может быть сторонний SDK (пример — Twitter4j).
2 Работа с соцсетями
OAuth
OAuth — протокол для авторизованного доступа к стороннему
API. OAuth позволяет приложению получить ограниченный
API-доступ к данным стороннего сервиса, если пользователь
дает добро.
Постановка проблемы:
Пользователи боятся вводить логины и пароли от своих
любимых фейсбуков/гмейлов внутри «левых»
страниц/приложений.
Если же они предоставляют доступ в рамках исходного
сервиса — доверие гораздо выше!
Можно ограничить права доступа и ограничения.
3 Работа с соцсетями
OAuth
4 Работа с соцсетями
Общая схема работы OAuth
Отсылаем браузер на страницу аутентификации сервиса,
указывая URL для возврата.
Пользователь видит родную фейсбучную страничку и не
боясь вводит логин/пароль.
Если все ОК, у пользователя запрашивается разрешение
на выдачу прав доступа для приложения.
Если все ОК, браузер перенаправляет пользователя
обратно на URL нашего сервиса.
Обрабатываем редирект. В параметре редирект-запроса к
нам приходит «код доступа».
С кодом доступа и «секретом» отправляем запрос на
получение токена (ACCESS_TOKEN).
Отправляем прикладные запросы с токеном (например,
получить информацию о пользователе: https://graph.
facebook.com/me?access_token=ACCESS_TOKEN)
5 Работа с соцсетями
Общая схема работы OAuth
6 Работа с соцсетями
Общая схема работы OAuth
Открываем в стандартном браузере — а как отловить
редирект?
http://www.facebook.com/dialog/oauth?
client_id=APP_ID&redirect_uri=fbconnect:
//success
Притворимся, что умеем смотреть redirect_uri
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="fbconnect" android:host="success" />
</intent-filter>
7 Работа с соцсетями
REST
REpresentational State Transfer
Используются методы HTTP-запросов
Create — POST
Read — GET
Update — PUT
Delete — DELETE
8 Работа с соцсетями
REST
Пример использования:
GET /user/info — прочитать информацию
PUT /user/info — обновить информацию
GET /item/comments — получить комментарии
GET /item/comments/14 — получить 14-ый комментарий
POST /item/comments — добавить комментарий
DELETE /item/comments/14 — удалить 14-ый комментарий
DELETE /item/comments — очистить комментарии
9 Работа с соцсетями
RPC
Remote procedure calling
Если у нас появляется знак ? в URL, то это уже не REST
Очень похоже на простой вызов процедур:
Название функции — это просто соответствующий URL
Аргументы задаются через параметры GET/POST-запроса
https://api.vk.com/method/messages.send?
uid=66392446&message=Preved&title=Medved&
access_token=longenoughrandomcharsequence
10 Работа с соцсетями
Полезные ссылки
http://habrahabr.ru/post/77648/
http://oauth.net/2/
http://www.restapitutorial.com
https://developers.facebook.com/docs/
android/login-with-facebook/v2.0
11 Работа с соцсетями

More Related Content

PPT
Klera vilenskaya drupalconf_2011____
PPT
Online media promotion
PDF
NeoQUEST-2016: Сложно ли стать "хамелеоном" в социальных сетях?
PDF
Android - 13 - Database
PDF
Android - 08 - Action bar
PPTX
Гуманитарные специальности в IT-индустрии
PPTX
Box model, display and position (HTML5 тема 07 - box model, display position)
PPTX
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Klera vilenskaya drupalconf_2011____
Online media promotion
NeoQUEST-2016: Сложно ли стать "хамелеоном" в социальных сетях?
Android - 13 - Database
Android - 08 - Action bar
Гуманитарные специальности в IT-индустрии
Box model, display and position (HTML5 тема 07 - box model, display position)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)

More from Noveo (20)

PPTX
Стилизация текста (HTML5 тема 05 - стилизация текста)
PPTX
Семантика текста (HTML5 тема 04 - семантика текста)
PPTX
Основы CSS (HTML5 тема 02 - основы CSS)
PPTX
Структура HTML документа (HTML5 тема 01 - структура html документа)
PPTX
Yii2
PPTX
Сессии и авторизация
PPTX
Rest
PPTX
PHP basic
PPTX
PHP Advanced
PPTX
PHP and MySQL
PPTX
MySQL
PDF
Push Notifications (Lecture 22 – push notifications)
PDF
RxJava+RxAndroid (Lecture 20 – rx java)
PDF
Работа с соцсетями (Lecture 19 – social)
PDF
Работа с геоданными (Lecture 18 – geolocation)
PDF
Animations (Lecture 17 – animations)
PDF
Toolbar (Lecture 16 – toolbar)
PDF
Material Design (Lecture 15 – material design)
PDF
Database (Lecture 14 – database)
PDF
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Стилизация текста (HTML5 тема 05 - стилизация текста)
Семантика текста (HTML5 тема 04 - семантика текста)
Основы CSS (HTML5 тема 02 - основы CSS)
Структура HTML документа (HTML5 тема 01 - структура html документа)
Yii2
Сессии и авторизация
Rest
PHP basic
PHP Advanced
PHP and MySQL
MySQL
Push Notifications (Lecture 22 – push notifications)
RxJava+RxAndroid (Lecture 20 – rx java)
Работа с соцсетями (Lecture 19 – social)
Работа с геоданными (Lecture 18 – geolocation)
Animations (Lecture 17 – animations)
Toolbar (Lecture 16 – toolbar)
Material Design (Lecture 15 – material design)
Database (Lecture 14 – database)
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Ad

Android - 15 - Social

  • 2. Работа с соцсетями Почти у всех крупных соцсетей есть сладкая пара: Авторизация через OAuth Запросы через REST API или RPC-style API. Дополнительно: Может быть свой SDK, но зачастую (например — у Facebook) это обёртка поверх того же API. Может быть сторонний SDK (пример — Twitter4j). 2 Работа с соцсетями
  • 3. OAuth OAuth — протокол для авторизованного доступа к стороннему API. OAuth позволяет приложению получить ограниченный API-доступ к данным стороннего сервиса, если пользователь дает добро. Постановка проблемы: Пользователи боятся вводить логины и пароли от своих любимых фейсбуков/гмейлов внутри «левых» страниц/приложений. Если же они предоставляют доступ в рамках исходного сервиса — доверие гораздо выше! Можно ограничить права доступа и ограничения. 3 Работа с соцсетями
  • 4. OAuth 4 Работа с соцсетями
  • 5. Общая схема работы OAuth Отсылаем браузер на страницу аутентификации сервиса, указывая URL для возврата. Пользователь видит родную фейсбучную страничку и не боясь вводит логин/пароль. Если все ОК, у пользователя запрашивается разрешение на выдачу прав доступа для приложения. Если все ОК, браузер перенаправляет пользователя обратно на URL нашего сервиса. Обрабатываем редирект. В параметре редирект-запроса к нам приходит «код доступа». С кодом доступа и «секретом» отправляем запрос на получение токена (ACCESS_TOKEN). Отправляем прикладные запросы с токеном (например, получить информацию о пользователе: https://graph. facebook.com/me?access_token=ACCESS_TOKEN) 5 Работа с соцсетями
  • 6. Общая схема работы OAuth 6 Работа с соцсетями
  • 7. Общая схема работы OAuth Открываем в стандартном браузере — а как отловить редирект? http://www.facebook.com/dialog/oauth? client_id=APP_ID&redirect_uri=fbconnect: //success Притворимся, что умеем смотреть redirect_uri <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="fbconnect" android:host="success" /> </intent-filter> 7 Работа с соцсетями
  • 8. REST REpresentational State Transfer Используются методы HTTP-запросов Create — POST Read — GET Update — PUT Delete — DELETE 8 Работа с соцсетями
  • 9. REST Пример использования: GET /user/info — прочитать информацию PUT /user/info — обновить информацию GET /item/comments — получить комментарии GET /item/comments/14 — получить 14-ый комментарий POST /item/comments — добавить комментарий DELETE /item/comments/14 — удалить 14-ый комментарий DELETE /item/comments — очистить комментарии 9 Работа с соцсетями
  • 10. RPC Remote procedure calling Если у нас появляется знак ? в URL, то это уже не REST Очень похоже на простой вызов процедур: Название функции — это просто соответствующий URL Аргументы задаются через параметры GET/POST-запроса https://api.vk.com/method/messages.send? uid=66392446&message=Preved&title=Medved& access_token=longenoughrandomcharsequence 10 Работа с соцсетями