Виджет «Публикации» Одноклассники
Для внешних приложений (например, сайтов или Android/iOS приложений) предусмотрен особый механизм публикации медиатопиков на страницу пользователя (эти записи увидят его друзья в своих лентах).
Использование виджета возможно только после аппрува приложения. Для получения аппрува отправьте id вашего приложения и URL сайта, с которого будут осуществляться публикации, на адрес: api-support@ok.ru.
Для публикации необходимо открыть новое окно браузера (или iframe) со специально сформированным URL:
https://connect.ok.ru/dk?st.cmd=WidgetMediatopicPost&st.app={application_id}&st.attachment={attachment_json}&st.signature={signature}&st.return={return_url}&st.popup={popup}&st.silent={silent}&st.utext={text}
Значения всех аргументов URL должны быть закодированы.
Параметр | Обязательный | Описание |
st.app | Да | Идентификатор приложения (application id) |
st.attachment | Да | Json-кодированная информация о публикуемом медиатопике (см. формат ниже). Можно закодировать json при помощи base64, чтобы избежать избыточного кодирования русских символов. |
st.signature | Да | Цифровая подпись запроса (см. алгоритм подсчета ниже) |
st.return | Нет | URL на который будет совершён редирект с результатом выполнения. Если не указан, то результат публикации будет передан через HTML5 postMessage. |
st.popup | Нет | Выполнять автоматическое центрирование и подгонку размеров окна. Возможные значения: on/off (по умолчанию) |
st.silent | Нет | Закрывать окно автоматически после окончания операции. Игнорируется, если указан st.return. Возможные значения: on/off (по умолчанию) |
st.utext | Нет | Дать возможность пользователю указать свой текст в публикуемом медиатопике. Возможные значения: on/off (по умолчанию) |
st.access_token | Нет | В случае OAuth приложения — требуется указать access_token |
Расчет подписи запроса st.signature
В качестве секретного ключа при передаче параметра st.access_token используется session_secret_key сессии, иначе, используется секретный ключ приложения.
Все значения не должны быть закодированы (кроме случая когда вы используете base64 для st.attachment).
Если указан параметр st.return, вычисляется следующим образом:
md5("st.attachment=" + attachment + "st.return=" + return_url + secretKey);
В остальных случаях:
md5("st.attachment=" + attachment + secretKey);
Если в результате приходит id = 0, то необходим аппрув приложения.
Описание attachment
Публикация медиатопика, который может содержать множество вложенных объектов:
- тексты;
- ссылки;
- фотографии;
- видео;
- музыку;
- голосования;
- решары;
- места.
Пример работы виджета «Публикации»
Более подробную документацию можно найти по ссылке — https://apiok.ru/ext/publish.
С уважением, Артём Санников
Сайт: ArtemSannikov.ru
Метки: Виджеты, Одноклассники.