Сигнатура метода
Обратите внимание, что публикация топика работает только для приложений, получивших аппрув. Для получения аппрува на работу виджета требуется прислать заявку на api-support@ok.ru
Это устаревшая версия SDK, которое рекомендуется использоваться только для приложений, запускаемых не в iframe
Для игр, запускаемых на Одноклассниках, рекомендуем использовать мультиплатформенное SDK
Метод для публикации топика в ленте пользователя с помощью виджета публикации.
Где:
- returnUrl - URL, на который будет отправлен пользователь при закрытии окна с виджетом. Необязательный параметр;
- options - дополнительные параметры виджета:
- attachment - содержание публикуемого топика;
- popup - выполнять ли автоматическое центрирование и подгонку размеров окна;
- silent - закрывать окно автоматически после окончания операции. Игнорируется, если указан returnUrl;
- utext - дать возможность пользователю указать свой текст в публикуемом медиатопике;
- nohead - отображать ли вверху виджета шапку Одноклассников.
Полное описание дополнительных параметров доступно здесь, а также возможные блоки контента, которые можно указывать в топике, можно найти на странице виджета публикации.
Return URL message
Если при вызове виджета был указан параметр returnUrl и не указан параметр options.silent, то после выхода пользователя из окна виджета (успешная публикация, отмена публикации, ошибка публикации), он будет перенаправлен на указанный URL с передачей в URL дополнительных параметров.
Список параметров следующий:
- result - результат работы виджета, объект со следующими возможными полями:
- type - общий результат работы виджета, возможны следующие значения:
- success - публикация выполнена успешно;
- error - при попытке публикации произошла ошибка, либо публикация была отменена пользователем.
- code - код произошедшей при публикации ошибки. В случае ошибки смотрите её описание на странице обработка ошибок
- message - описание произошедшей ошибки;
- id - id опубликованного топика. Если у вашего приложения нет аппрува, то id будет равен 0;
- signature - подпись запроса для валидации.
- type - общий результат работы виджета, возможны следующие значения:
Пример при успешной публикации топика
?result={"type":"success","id":"123456789123456","signature":"5c1a50d97a870c2****9d68cda15756"}
Пример при отмене публикации пользователем
?result={"type":"error","code":12,"message":"Operation was cancelled by user"}
Пример при ошибке публикации
?result={"type":"error","code":104,"message":"Bad signature "}
Window postMessage
Если при вызове виджета не был указан параметр returnUrl и был указан параметр options.silent, то после выхода пользователя из окна виджета (успешная публикация, отмена публикации, ошибка публикации) в родительское окно будет отправлен postMessage с информацией о результате работы виджета.
Параметры сообщения (message.data) аналогичны тем, что передаются в параметре result при указании return URL.
Пример при успешной публикации
Пример при отмене публикации пользователем
Пример при ошибке публикации
Таким образом, можно задать eventListener, который будет каким-то образом обрабатывать это сообщение:
Пример вызова
Пример вызова с returnUrl
Пример вызова с postMessage
В результате вызова метода пользователю будет показано окно с превью топика, где он может подтвердить или отменить его публикацию: