Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
BBC RussianТребования к иконкам приложения

Если вам необходимо сменить иконку вашего приложения, то будет недостаточно просто переложить .jpg или .png на вашем сервере. Чтобы изменения были видны на портале, в настройках вашего приложения также должна быть изменена ссылка (например, добавлен/изменен GET-параметр).

Ввиду того, что мы стремимся к стандартизированному и последовательному дизайну в разделе игр, мы вводим необходимые параметры для основных картинок игры:

Иконки приложения

При регистрации заявки на рассмотрения приложения в нашей системе JIRA, пожалуйста, указывайте в заголовке, что данная заявка относится к приложениям.

Каждый конкретный случай рассматривается отдельно. Администрация сайта оставляет за собой право не допускать приложение и по другим причинам.

Параметры запуска

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

Кроме перечисленных при запуске приложения со страницы группы, будут передаваться дополнительные параметры:

ПараметрТипОписание
group_idLongидентификатор группы
viewer_typeStringроль пользователя в группе
custom_argsStringкастомные параметры запуска, переданные после ?

Параметр viewer_type (роль пользователя в группе) может иметь следующие строковые значения:

ЗначениеОписание
ADMINадминистратор группы
SUPER_MODERATORсупермодератор
MODERATORмодератор
EDITORмодератор-редактор
ANALYSTмодератор-аналитик
ACTIVEучастник группы
MAYBEвозможно, пойдёт (только для мероприятий)
PASSIVEнеучастник

Используя параметр viewer_type вы можете определять роль пользователя, например, чтобы отображать специальный интерфейс для администраторов и модераторов группы.

Дополнительные параметры

Чтобы при запуске передать в приложение произвольные параметры, используйте при генерации ссылки query часть ссылки после символа ?, укажите необходимые параметры.

Например,

https://ok.ru/group/1111111111111/app/77777777777?param1=545435345&param2=HELLO

Данные после ? будут переданы при запуске приложения в параметре custom_args.
Запуск приложения со своим кастомными параметрами может использоваться для запуска приложения из публикаций в ленте на конкретное состояние приложения. Например, на конкретный тест, анкету, услугу и т.д.

Отправка личных сообщений

Приложение может отправлять сообщения от имени сообщества, в котором оно установлено, используя Bot API.
Предлагаем такую схему работы:

OKSDK.Widgets.askGroupAppPermissions(‘GROUP_BOT_API_TOKEN’, return_url);

OKSDK.Widgets.askGroupAppPermissions(‘MESSAGES_FROM_GROUP’, return_url);

https://api.ok.ru/graph/me/messages/chat:C3ecb9d02a600?access_token=TOKEN

Отправка текстового сообщения

{
  "recipient": {
    "user_ids": ["user:1111111111111", "user:222222222222", "user:3333333333333"]
  },
  "message": {
    "text": "Привет"
  }
}

Отправка сообщения с фото

{
    "recipient": {
        "user_ids": ["user:1111111111111", "user:222222222222", "user:3333333333333"]
    },
    "message": {
        "attachment": {
            "type": "image",
            "payload": {
                "url": "https://st.mycdn.me/res/i/ok_logo.png"
            }
        }
    }
}

В одном запросе можно передать максимум 100 получателей сообщения. В ответ придёт JSON массив true/false, кому получилось отправить сообщение.

Публикация постов в ленты пользователей и группу

Для публикации постов в ленты пользователей и группу (в том числе с блоком ссылки на игру с картинкой), предлагаем использовать виджет публикации из Javascript SDK:

OKSDK.Widgets.post(
    return_url,
    {
        'attachment': {
            'media': [
                {'type': 'text', 'text': 'Hello, world!'},
                {
                    'type': 'link',
                    'url': 'http://ok.ru/group/11111111111/app/22222222222?param1=AAAAAAAAAAA',
                    'imageUrl': 'http//yoursite.com/640x320.png',
                    'buttonKey': 'ANSWER'
                }
            ]
        },
        'groupId': 777777777777
    }
);

Передача заголовка, описания и картинки при публикации ссылки

Когда пользователь вставляет ссылку на групповое приложение при публикации тем, заметок и комментариев на ОК, либо делает постинг через виджет или метод API, веб-граббер ОК автоматически распознает, что это групповое приложение и пытается автоматически получить заголовок, описание и картинку, делая запрос к сайту приложения.

Заголовок блока ссылки составляется на основе тега: <title>,
описание - на основе тега: <meta name="desсription">,
картинка - на основе тега: <meta property="og:image" content="url"/>, либо из картинок, найденных в коде запрашиваемой страницы.

При отсутствии этих тегов или если страница вернула ошибку, веб-граббер возьмет заголовок и описание из метаданных приложения в ОК, а картинку предложит загрузить пользователю самостоятельно.

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

ПараметрЗначение
grabber1
application_keyидентификатор приложения
group_idидентификатор группы
custom_argsкастомные параметры запуска
sigподпись запроса

При вызове добавляется параметр grabber=1. По этому признаку можно определить, что запрос с веб-граббера и приложению не обязательно выдавать весь html, ограничившись лишь title, description и image в head-е кода страницы.

Установка приложения с внешнего сайта по прямой ссылке

Вы можете разместить на своем сайте кнопку для установки приложения в группы пользователя. Используйте ссылку такого вида:

https://ok.ru/appinstall/APP_ID

, здесь APP_ID — ID приложения.

Также рекомендуем использовать этот виджет установки приложения, в случаях, когда приложение было запущено без параметра group_id. Например, пользователь запустил его из списка приложений, а не из группы. В этом случае рисовать красивую заглушку и кнопку с ссылкой на этот виджет.

Переход по внешней ссылке из приложения (открытие в браузере из мобильного приложения)

Групповые приложения в наших Android/iOS мобильных приложениях открываются во WebView и визуально выглядят, как часть нашего приложения. В большинстве приложений вызов каких-то страниц не во WebView, а в браузере - не понадобится. Но иногда, например, когда приложение использует свой механизм оплаты - мы не разрешаем открывать внутри WebView такие страницы. Пользователь должен четко понимать, что он производит оплату не в Одноклассники, а напрямую в ваш сервис.

Такие страницы должны быть открыты на мобильных приложениях в браузере. Для этого нужно:

var config = {
    app_id: 0,
    app_key: '',
    use_extlinks: true
};
OKSDK.init(config, function () {
    //on success
}, function (error) {
    //on error
});
<a href="http://my.payment.page/" class="js-sdk-extlink" target="_blank">Заплатить</a>