Подключение авторизации сайта к каталогу игр Webtomat

advertisement
Подключение авторизации сайта к каталогу игр Webtomat
Данное руководство предназначено для подключения к каталогу игр Webtomat
собственную систему авторизации пользователей через подключаемый сайт, что
позволит более тесно интегрировать каталог с сайтом.
Порядок подключения сайта
Для подключения авторизации сайта сначала необходимо сделать запрос в
тех.поддержку через тикет-систему. После одобрения, в разделе Редактирование
площадки появятся Дополнительные параметры:
1. URL API сайта (REST API)
2. URL авторизации
3. Ваш секретный ключ
Необходимые методы API, а также работа скрипта авторизации описаны в данном
руководстве в соответствующих разделах. После создания API, настройки авторизации,
можно протестировать работу, разместив любую игру у себя на сайте.
1. REST API
API сайта включает в себя следующие методы:
1. getAppFriends - позволяет получить список друзей пользователя.
Название
параметра
Обязательный Описание
Идентификатор пользователя, у которого требуется получить список
друзей. По умолчанию принимает значение текущего пользователя
uid
Пример запроса
http://yoursite.com/api.php?method=getAppFriends&api_id=786&user_id=2296285&access_token=2164a69d64
bdc700f9525711f6e7b905
Пример результата
<?xml version="1.0" encoding="UTF-8"?>
< response >
<uid>123</uid>
<uid>124</uid>
<uid>125</uid>
</response>
2. getProfiles - позволяет получить информацию о пользователе на сайте.
Название
параметра
Обязательный Описание
uids
да
Перечисленные через запятую идентификаторы пользователей, не
более 100
Пример запроса
http://yoursite.com/api.php?method=getProfiles&api_id=786&user_id=2296285&uids=123,124,125&access_toke
n=2164a69d64bdc700f9525711f6e7b905
Пример результата
<?xml version="1.0" encoding="UTF-8"?>
< response >
<user>
<uid>123</uid>
<first_name>Вася</first_name>
<last_name> Пупкин </last_name>
<photo>http://yoursite.com/img/1.jpg</photo>
<photo_big>http://yoursite.com/img/1.jpg</photo>
<sex>2</sex>
<bdate>1988-06-22</bdate>
<profile>http://yoursite.com/profile/id123</profile>
</user>
<user>
<uid>124</uid>
<first_name>Алёна</first_name>
<last_name>Иванова</last_name>
<photo>http://yoursite.com/img/1.jpg</photo>
<photo_big>http://yoursite.com/img/1.jpg</photo>
<sex>1</sex>
<bdate>1988-08-06</bdate>
<profile>http://yoursite.com/profile/id124</profile>
</user>
<user>
<uid>125</uid>
<first_name>НЛО</first_name>
<last_name>Внеземное</last_name>
<photo>http://yoursite.com/img/1.jpg</photo>
<photo_big>http://yoursite.com/img/1.jpg</photo>
<sex>0</sex>
<bdate>1988-08-06</bdate>
<profile>http://yoursite.com/profile/id125</profile>
</user>
</response>
3. wallPost – отправляет сообщение на стену/ленту активности пользователю.
Название параметра Обязательный Описание
uid
да
Идентификатор пользователя, которому отправляется сообщение
message
да
Сообщение, которое получит пользователь, в кодировке utf-8
Пример запроса
http://yoursite.com/api.php?method=wallPost&api_id=786&user_id=2296285&uid=123&message=test_message
&access_token=2164a69d64bdc700f9525711f6e7b905
В ответ на полученный запрос сайт должен оставить сообщение на стене пользователя.
Выполнение запросов к API
Для того чтобы вызвать метод API сайта, клиент осуществляет POST запрос на указанный URL
API сайта:
http://yoursite.com/api.php?method=METHOD&api_id=API_ID&user_id=
UID&PARAMETERS&access_token=ACCESS_TOKEN
,где
METHOD – название метода из списка методов REST API
API_ID – идентификатор приложения, из которого осуществляется запрос
UID – идентификатор пользователя, который осуществляет запрос
PARAMETERS – параметры соответствующего метода
ACCESS_TOKEN – ключ доступа, уникальный для каждого пользователя
Пример запроса
http://yoursite.com/api.php?method=getProfiles&api_id=786&user_id=2296285&uids=123,124,125&access_toke
n=2164a69d64bdc700f9525711f6e7b905
АPI сайта обязан проверять access_token на валидность. Ключ формируется следующим
образом:
access_token = md5(api_id+user_id+secret_key)
, где secret_key – секретный ключ Вашей площадки. Его можно получить в редактировании
площадки.
Пример
//uid=123456
//api_id=786
//secret_key=a7365a399f9015050c6eda0905b6a7fd
access_token = md5("786123456a7365a399f9015050c6eda0905b6a7fd") =
2680bb809d73f5ee3e8ee9d71b41c1d5
В случае если пользователь не авторизован
2. АВТОРИЗАЦИЯ
Для интеграции механизма авторизации пользователя в играх необходимо
добавить на страницу с игрой следующий код:
<script type=”text/javascript” src=”http://static.apitech.ru/webtomat/api/api.js”>
</script>
<script type=”text/javascript”>
tomatAPI.init({
webId : 1, //идентификатор Вашей площадки в системе вебтомат
login : loginFunction, //функция, которая будет вызываться при попытке авторизации
logout : logoutFunction, // функция, которая будет вызываться при деавторизации
uid : 123456, // идентификатор пользователя на сайте
token : "2680bb809d73f5ee3e8ee9d71b41c1d5"
});
</script>
Авторизация пользователя
Нужно добавить, что вызов tomatAPI.init нужно делать при открытии игры
каждый раз, а не единожды при загрузке (актуально для динамической загрузки игр)
Возможны следующие ситуации авторизации и деавторизации:
1.
2.
3.
4.
5.
6.
Пользователь авторизован до входа в игру
Пользователь авторизуется во время игры через интерфейс сайта
Пользователь авторизуется во время игры через интерфейс игры
Пользователь не авторизован
Пользователь деавторизуется во время игры через интерфейс сайта
Пользователь деавторизуется во время игры через интерфейс игры
Варианты реализаций каждой из ситуаций:
1. Пользователь авторизован до входа в игру.
tomatAPI.init({
webId : 1,
login : loginFunction,
logout : logoutFunction,
uid : 123456,
token : "2680bb809d73f5ee3e8ee9d71b41c1d5"
});
,где
login – js-функция, которая будет вызываться при авторизации пользователя
logout
uid
- js-функция, которая будет вызываться при деавторизации пользователя
- идентификатор пользователя на сайте
token – проверочный ключ пользователя
При такой инициализации игровой контейнер получит данные авторизованного
пользователя во время входу в игру.
2. Пользователь авторизуется во время игры через интерфейс сайта.
Возможны 2 варианта авторизации:
 без перезагрузки страницы:
tomatAPI.onLogin({
uid : 123456,
token : "2680bb809d73f5ee3e8ee9d71b41c1d5"
});

с перезагрузкой страницы – при такой авторизации повторяется ситуация
«Пользователь авторизован до входа в игру»
3. Пользователь авторизуется во время игры через интерфейс игры. В
таком случае вызывается js-функция, переданная при инициализации tomatAPI
в параметре login. Эта функция, например, может поднимать диалоговое окно
авторизации Вашего сайта, или перенаправлять пользователя на страницу
авторизации (крайне не рекомендуется, так как закрытие игрового окна
может отрицательно повлиять на лояльность пользователей, в таком
случае рекомендуется открывать окно авторизации в отдельной вкладке,
после авторизации вызывать tomatAPI.onLogin )
4. Пользователь не авторизован
tomatAPI.init({
webId : 1,
login : loginFunction,
logout : logoutFunction,
});
4. Пользователь деавторизуется во время игры через интерфейс сайта.
Деавторизовать пользователя в игре без перезагрузки страницы можно так:
tomatAPI.onLogout();
При перезагрузке страницы повторится ситуация «Пользователь не
авторизован»
4. Пользователь деавторизуется во время игры через интерфейс игры.
В таком случае вызывается js-функция, переданная при инициализации
tomatAPI в параметре logout . Эта функция, например, может поднимать
диалоговое окно подтверждения деавторизации, или обновить страницу с уже
удалённой пользовательской сессией.
URL Авторизации
В момент авторизации пользователя на Вашем сайте, клиент получает uid и token,
эти данные передаются на URL авторизации на серверной стороне. В ответ должны
вернуться пользовательские данные в формате JSON.
Пример запроса
http://yoursite.com/auth.php?uid=123456&appid=123& token=2164a69d64bdc700f9525711f6e7b905
Пример результата
{"first_name":"Vasya","last_name":"Pupkin","uid":"123456","photo":"http:\/\/yoursite.
com\/img\/photo.jpg",,"photo_big":"http:\/\/yoursite.com\/img\/photo.jpg","sex":2,"bd
ate":"1988-06-22","profile":"http:\/\/yoursite.com\/profile\/id123456"}
4. ПОЛЬЗОВАТЕЛЬСКИЕ ДАННЫЕ
Для правильного отображения пользовательских данных в игре, а также для лучшего
рекламного таргетинга необходимо предоставлять следующий набор данных
пользователя:
Название параметра
Обязательный
Описание
uid
да
Уникальный идентификатор пользователя
first_name
да
Имя пользователя
last_name
да
Фамилия пользователя
photo
да
Аватар пользователя (50x50)
photo_big
Фото пользователя (200x200)
sex
Пол.
Муж – 2
Жен – 1
Не определён – 0
bdate
Дата рождения в формате "YYYY-MM-DD"
profile
да
Ссылка на профиль пользователя на сайте
Указаны рекомендуемые размеры фото пользователя. В ином случае фото будет
масштабироваться.
5. КРОССДОМЕННАЯ ПОЛИТИКА БЕЗОПАСНОСТИ
Для того чтобы flash-клиент мог осуществлять запросы к API сайта, необходимо
наличие файла crossdomain.xml в корне сайта. Содержимое файла:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="*.apitech.ru" headers="*"/>
<allow-access-from domain="*.apitech.ru" to-ports="80"/>
</cross-domain-policy>
Download