Хранимые процедуры (настройки игр)

Хранимые процедуры — функции на языке VKScript, код которых хранится в настройках игры, а выполняется на стороне серверов ВКонтакте.

Хранимые процедуры — мощный инструмент для работы с данными.

  • Каждая процедура может выполнять один или несколько API-запросов. При этом результаты выполнения отдельных запросов не передаются на компьютер пользователя, что в общем случае ускоряет выполнение и экономит трафик. Последнее особенно важно для игр, которые работают в мобильных приложениях ВКонтакте для Android и iOS.

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

В разделе настроек Хранимые процедуры вы можете создавать, проверять, редактировать и удалять хранимые процедуры для вашей игры.

Как открыть

Откройте панель управления игрой и в меню слева выберите Разработка → Хранимые процедуры.

Кому доступно

Раздел доступен администраторам игры со следующими правами:

  • Создатель игры.

  • Администратор с полным доступом.

  • Администратор с частичным доступом, с правом «Редактирование».

Действия в разделе

Создать процедуру

  1. 1.

    Нажмите Добавить процедуру.

    Откроется экран редактирования процедуры.

    Пример экрана редактирования процедурыПример экрана редактирования процедуры

  2. 2.

    На экране редактирования:

    • Укажите Название процедуры — строку от 1 до 100 символов. Допустимы только символы латинского алфавита.

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

    • В поле Версия API укажите версию API ВКонтакте, которая будет использована для вызова API-запросов из процедуры.

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

    • Введите код процедуры. Подробности синтаксиса — в разделе Формат языка VKScript. Некоторые ключевые особенности описаны ниже.

  3. 3.

    Чтобы проверить, как работает код, нажмите Запустить. Результат отобразится под текстовым полем для ввода кода.

    Перед выполнением процедуры платформа проверит синтаксис её кода и сообщит о первой найденной ошибке. Исправьте ошибки синтаксиса до сохранения процедуры.

    Подробнее о тестовых запусках рассказано ниже.

  4. 4.

    Когда всё будет готово, нажмите Сохранить.

    Если в коде есть синтаксические ошибки, сохранить его не получится. Сначала исправьте ошибки.

Найти и отредактировать процедуру

  1. 1.

    Чтобы найти процедуру в списке, в поле поиска введите несколько символов из её имени. Регистр символов — заглавные или прописные — не важен.

    ВКонтакте отобразит те хранимые процедуры, название которых содержит введённую строку.

  2. 2.

    Нажмите Редактировать процедуру для нужной процедуры. Откроется экран редактирования.

  3. 3.

    Внесите изменения и нажмите Сохранить.

Где почитать про VKScript

Смотрите раздел Формат языка VKScript.

Некоторые ключевые особенности:

Особенность
Доступ к параметрам хранимой процедуры
Args.param_name
Вызов API-запросов
var r = API.users.get( {"user_ids": 123} ); Здесь users.get — название группы и имя API-метода, как они указаны в документации.
Доступ к результатам запроса
Вернуть значение и выйти из процедуры
return { "result": 12345};
Создание функций внутри процедуры
Не поддерживается.

Указать параметры

Параметры хранимой процедуры указываются при её вызове. Объявлять их в редакторе процедуры не нужно.

Чтобы обратиться к параметру, используйте синтаксис Args.param-name.

Выполнить тестовый запуск

Нажмите Запустить. Результат выполнения отобразится в поле Результат. Оно содержит данные в том виде, в котором они будут переданы в код вызова процедуры.

Кнопка «Запустить» и результат выполненияКнопка «Запустить» и результат выполнения

Если при выполнении кода произошла ошибка, её описание отобразится в поле Результат.

Пример ответа с информацией об ошибкеПример ответа с информацией об ошибке

Перед запуском платформа проверяет синтаксис кода процедуры. Код с синтаксическими ошибками выполнить не получится.

Платформа информирует о первой найденной синтаксической ошибке: показывает строку с описанием ошибки и номером строки в коде.

Пример сообщения о синтаксической ошибкеПример сообщения о синтаксической ошибке

Выполнить процедуру

Чтобы выполнить процедуру, вызовите API-метод execute. В вызов передайте название и параметры процедуры.

POST https://api.vk.ru/method/execute.ИМЯ-ПРОЦЕДУРЫ?access_token=КЛЮЧ-ДОСТУПА&v=ВЕРСИЯ-API&func_v=ВЕРСИЯ-ПРОЦЕДУРЫ&ПАРАМЕТР-1=ЗНАЧЕНИЕ-1&ПАРАМЕТР-2=ЗНАЧЕНИЕ-2 HTTP/1.1

Хранимую процедуру можно вызвать с помощью события VKWebAppCallAPIMethod.

JavaScript
bridge.send("VKWebAppCallAPIMethod", { method: "execute.ИМЯ-ПРОЦЕДУРЫ", params: { ПАРАМЕТР-1: "ЗНАЧЕНИЕ-1", ПАРАМЕТР-2: "ЗНАЧЕНИЕ-2", v: "ВЕРСИЯ-API", // Например, "5.134" func_v: "ВЕРСИЯ-ПРОЦЕДУРЫ", // Например, "Версия 1" access_token: "КЛЮЧ-ДОСТУПА" } });

Создать новую версию процедуры

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

Инициировать выполнение процедуры можно из серверного кода и из кода, который работает на клиентской стороне. При этом возможна ситуация, когда код на клиентской стороне не будет совместим с новым кодом процедуры. В таком случае вы можете создать новую версию процедуры и использовать её в обновлённом клиентском коде, в то время как старый код будет работать со старой версией.

Чтобы создать новую версию хранимой процедуры:

  1. 1.

    Откройте процедуру для редактирования.

  2. 2.

    В выпадающем списке Версия выберите версию, которую вы хотите клонировать.

  3. 3.

    В этом же выпадающем списке нажмите Добавить новую версию. ВКонтакте создаст новую версию процедуры на основе выбранной.

    Пункт «Добавить новую версию» появляется в списке после того, как вы сохраните процедуру в первый раз.

    Создание новой версии хранимой процедурыСоздание новой версии хранимой процедуры

  4. 4.

    Введите код новой версии и сохраните изменения.

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

Удалить процедуру

  1. 1.

    Откройте хранимую процедуру для редактирования.

  2. 2.

    Нажмите Версия процедуры и выберите первую версию в списке.

  3. 3.

    В правом нижнем углу нажмите Удалить, затем подтвердите действие.

    Удаление процедурыУдаление процедуры

Если у процедуры несколько версий, при удалении первой будут удалены все версии.

Удалить версию процедуры

  1. 1.

    Откройте хранимую процедуру для редактирования.

  2. 2.

    Нажмите Версия процедуры и выберите версию из списка.

  3. 3.

    В правом нижнем углу нажмите Удалить версию.

    Удаление версииУдаление версии

Удалить первую версию процедуры нельзя. Она удаляется только вместе со всей процедурой.

Материалы по теме