Внешнее JavaScript SDK

Репозиторий на Github: ok-js-sdk
Примеры приложений с SDK: ok-js-sdk/samples

Внешним JavaScript SDK могут воспользоваться разработчики MOBILE_HTML и внешних браузерных приложений. Оно позволяет авторизоваться через клиентский OAuth для внешних приложений, вызывать платежные методы (по аналогии с js sdk) для MOBILE_HTML приложений, делать записи к пользователю и приглашать/слать нотификации в игру, а также вызывать REST-методы.

Перед подключением SDK необходимо проверить в настройках приложения:

  • нужная платформа добавлена в настройках приложения
  • для MOBILE_HTML приложений:
    • указан Callback url для платежей
  • для внешних приложений:
    • включена клиентская авторизация
    • в redirect_uri добавлен передаваемый потом в config и/или текущий url
    • приложение обладает нужными для функционирования правами, для нативных приложений рекомендуется иметь и запрашивать LONG_ACCESS_TOKEN

Для подключения SDK:

  • скопировать себе файл oksdk.js из репозитория
  • добавить в head подключение скрипта, например:
<script type="text/javascript" src="oksdk.js"></script>

Использование SDK

Инициализация:

var config = {
    app_id: 0,
    app_key: ''
};
OKSDK.init(config, function () {
    //on success
}, function (error) {
    //on error
});

Вызов REST-метода (OKSDK.REST.call):

OKSDK.REST.call("METHOD_NAME", { fields: "FIELDS"}, function (status, data, error) {
	//callback
});

Вызов виджетов (виджет публикации - OKSDK.Widgets.post, виджет приглашения и рекомендации - OKSDK.Widgets.invite / OKSDK.Widgets.suggest):

OKSDK.Widgets.post(RETURN_URL, JSON.stringify({"media": [{"type": "text", "text": "hello world!"}]}));
OKSDK.Widgets.invite(RETURN_URL);
OKSDK.Widgets.suggest(RETURN_URL);

Проведения платежа в MOBILE_HTML приложении

Переход на мобильную версию платежей должен осуществяться со следующим URL:

https://m.ok.ru/api/show_payment?application_key={app_key}&session_key={session_key}&sig={signature}&{params}

Параметры метода:

ИмяТребуетсяТипОписание
nameДаStringНаименование продукта, например: 1 apple
priceДаintОбщая стоимость в OK
codeДаStringИдентификатор продукта, кодирующий продукты, сумму и т. п. в свободном формате. Отправляется поставщику приложения в ходе обработки платежа.

Пример расчета подписи:
name = 20 coins
price = 10
code = 1

sig = md5(application_key=<APPLICATION_PUBLIC_KEY>code=1name=20 coinsprice=10session_key=<SESSION_KEY><SESSION_SECRET_KEY>)

Для вызова из SDK можно использовать код:

OKSDK.Payment.show(productName, productPrice, productCode)

После успешного выполнения платежа или отмены пользователем браузер переадресуется обратно в приложение, а в GET-параметрах появляется custom_args с payment=ok или payment=cancel в зависимости от результата платежа.