android - 15 - social

11

Click here to load reader

Upload: noveo

Post on 30-Jun-2015

156 views

Category:

Technology


0 download

DESCRIPTION

OAuth and ways of access to social networks

TRANSCRIPT

Page 1: Android - 15 - Social

Работа с соцсетями

Олег Годовых

Page 2: Android - 15 - Social

Работа с соцсетями

Почти у всех крупных соцсетей есть сладкая пара:I Авторизация через OAuthI Запросы через REST API или RPC-style API.

Дополнительно:I Может быть свой SDK, но зачастую (например — уFacebook) это обёртка поверх того же API.

I Может быть сторонний SDK (пример — Twitter4j).

2 Работа с соцсетями

Page 3: Android - 15 - Social

OAuth

OAuth — протокол для авторизованного доступа к стороннемуAPI. OAuth позволяет приложению получить ограниченныйAPI-доступ к данным стороннего сервиса, если пользовательдает добро.Постановка проблемы:

I Пользователи боятся вводить логины и пароли от своихлюбимых фейсбуков/гмейлов внутри «левых»страниц/приложений.

I Если же они предоставляют доступ в рамках исходногосервиса — доверие гораздо выше!

I Можно ограничить права доступа и ограничения.

3 Работа с соцсетями

Page 4: Android - 15 - Social

OAuth

4 Работа с соцсетями

Page 5: Android - 15 - Social

Общая схема работы OAuthI Отсылаем браузер на страницу аутентификации сервиса,указывая URL для возврата.

I Пользователь видит родную фейсбучную страничку и небоясь вводит логин/пароль.

I Если все ОК, у пользователя запрашивается разрешениена выдачу прав доступа для приложения.

I Если все ОК, браузер перенаправляет пользователяобратно на URL нашего сервиса.

I Обрабатываем редирект. В параметре редирект-запроса кнам приходит «код доступа».

I С кодом доступа и «секретом» отправляем запрос наполучение токена (ACCESS_TOKEN).

I Отправляем прикладные запросы с токеном (например,получить информацию о пользователе: https://graph.facebook.com/me?access_token=ACCESS_TOKEN)

5 Работа с соцсетями

Page 6: Android - 15 - Social

Общая схема работы OAuth

6 Работа с соцсетями

Page 7: Android - 15 - Social

Общая схема работы 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 Работа с соцсетями

Page 8: Android - 15 - Social

REST

REpresentational State TransferИспользуются методы HTTP-запросов

I Create — POSTI Read — GETI Update — PUTI Delete — DELETE

8 Работа с соцсетями

Page 9: Android - 15 - Social

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 Работа с соцсетями

Page 10: Android - 15 - Social

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 Работа с соцсетями

Page 11: Android - 15 - Social

Полезные ссылки

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 Работа с соцсетями