android - 15 - social
DESCRIPTION
OAuth and ways of access to social networksTRANSCRIPT
Работа с соцсетями
Олег Годовых
Работа с соцсетями
Почти у всех крупных соцсетей есть сладкая пара:I Авторизация через OAuthI Запросы через REST API или RPC-style API.
Дополнительно:I Может быть свой SDK, но зачастую (например — уFacebook) это обёртка поверх того же API.
I Может быть сторонний SDK (пример — Twitter4j).
2 Работа с соцсетями
OAuth
OAuth — протокол для авторизованного доступа к стороннемуAPI. OAuth позволяет приложению получить ограниченныйAPI-доступ к данным стороннего сервиса, если пользовательдает добро.Постановка проблемы:
I Пользователи боятся вводить логины и пароли от своихлюбимых фейсбуков/гмейлов внутри «левых»страниц/приложений.
I Если же они предоставляют доступ в рамках исходногосервиса — доверие гораздо выше!
I Можно ограничить права доступа и ограничения.
3 Работа с соцсетями
OAuth
4 Работа с соцсетями
Общая схема работы OAuthI Отсылаем браузер на страницу аутентификации сервиса,указывая URL для возврата.
I Пользователь видит родную фейсбучную страничку и небоясь вводит логин/пароль.
I Если все ОК, у пользователя запрашивается разрешениена выдачу прав доступа для приложения.
I Если все ОК, браузер перенаправляет пользователяобратно на URL нашего сервиса.
I Обрабатываем редирект. В параметре редирект-запроса кнам приходит «код доступа».
I С кодом доступа и «секретом» отправляем запрос наполучение токена (ACCESS_TOKEN).
I Отправляем прикладные запросы с токеном (например,получить информацию о пользователе: https://graph.facebook.com/me?access_token=ACCESS_TOKEN)
5 Работа с соцсетями
Общая схема работы OAuth
6 Работа с соцсетями
Общая схема работы OAuth
I Открываем в стандартном браузере — а как отловитьредирект?http://www.facebook.com/dialog/oauth?client_id=APP_ID&redirect_uri=fbconnect://success
I Притворимся, что умеем смотреть 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-запросов
I Create — POSTI Read — GETI Update — PUTI Delete — DELETE
8 Работа с соцсетями
REST
Пример использования:I GET /user/info — прочитать информациюI PUT /user/info — обновить информациюI GET /item/comments — получить комментарииI GET /item/comments/14 — получить 14-ый комментарийI POST /item/comments — добавить комментарийI DELETE /item/comments/14 — удалить 14-ый комментарийI DELETE /item/comments — очистить комментарии
9 Работа с соцсетями
RPC
Remote procedure calling
I Если у нас появляется знак ? в URL, то это уже не RESTI Очень похоже на простой вызов процедур:
I Название функции — это просто соответствующий URLI Аргументы задаются через параметры GET/POST-запроса
I https://api.vk.com/method/messages.send?uid=66392446&message=Preved&title=Medved&access_token=longenoughrandomcharsequence
10 Работа с соцсетями
Полезные ссылки
I http://habrahabr.ru/post/77648/I http://oauth.net/2/I http://www.restapitutorial.comI https://developers.facebook.com/docs/android/login-with-facebook/v2.0
11 Работа с соцсетями