Виджет «Приглашения и рекомендации игр» Одноклассники
Для внешних приложений (сайтов, нативных или же html5 мобильных игр) существует особый механизм привлечения в игру с помощью виджетов:
Название (widget_id) |
Назначение | Описание |
WidgetInvite | приглашение | Приглашает не играющих на данный момент друзей в игру |
WidgetSuggest | рекомендация | Отсылает рекомендацию игры друзьям. Может быть отослано в том числе играющим в игру. |
Для вызова необходимо открыть новое окно браузера (или iframe) со специально сформированным URL:
https://connect.ok.ru/dk?st.cmd={widget_id}&st.app={application_id}&st.signature={signature}&st.return={return_url}&st.popup={popup}
Значения всех аргументов URL должны быть закодированы.
Параметр | Обязательный | Описание |
st.access_token | Нет | В случае OAuth приложения — требуется указать access_token |
st.app | Да | Идентификатор приложения (application id) |
st.autosel | Нет | Количество друзей, которых следует выбрать автоматически за пользователя. По умолчанию — 0. |
st.comment | Нет | Значения поля ввода текста приглашения по умолчанию |
st.custom_args | Нет | Дополнительные параметры которые будут переданы при открытии приложения когда целевой пользователь примет приглашение. |
st.popup | Нет | Выполнять автоматическое центрирование и подгонку размеров окна. Возможные значения: on/off (по умолчанию) |
st.return | Нет | URL на который будет совершён редирект с результатом выполнения. Если не указан, то результат публикации будет передан через HTML5 postMessage. |
st.signature | Да | Цифровая подпись запроса (см. алгоритм подсчета ниже) |
st.state | Нет | Дополнительные параметры, которые в неизмененном виде вернуться в скрипт-обработчик. Рекомендуется использовать этот параметр вместо GET параметров в st.return так как параметр участвует в подписи что исключает его подделку |
st.target | Нет | Список пользователей, которых следует выбрать по умолчанию в общем списке |
st.target_only | Нет | Если установлен в булевское значение — то покажет только друзей, переданных в параметре st.target. Возможные значения: on/off (по умолчанию) |
Расчёт подписи запроса st.signature
В качестве секретного ключа при передаче параметра st.access_token используется session_secret_key сессии, иначе, используется секретный ключ приложения.
Все значения не должны быть закодированы.
При отсутствии какого-то из использующихся параметров, его часть не указывается.
md5("st.returnUrl=" + return_url + "st.state=" + state + secretKey);
Если в запросе был указан параметр st.return, то после подтверждения публикации пользователь будет перенаправлен на URL, указанный в параметре.
{st.return}?code={code}&selected=[3154325,435345]&sig={signature}
В противном случае будет отправлено HTML5 postMessage-сообщение c JSON объектом:
{
"code": "OK",
"selected": [521461346,2141352145],
"sig": "f7af00de7381be7c0866085d909a934e"
}
Если пользователь нажимает кнопку “Отмена”, то в ответе будут code = CANCELLED.
Более подробную документацию можно найти по ссылке — https://apiok.ru/ext/invite_suggest.
С уважением, Артём Санников
Сайт: ArtemSannikov.ru
Метки: Виджеты, Одноклассники.