Хранимые процедуры (настройки игр)
Хранимые процедуры — функции на языке VKScript, код которых хранится в настройках игры, а выполняется на стороне серверов ВКонтакте.
Хранимые процедуры — мощный инструмент для работы с данными.
- •
Каждая процедура может выполнять один или несколько API-запросов. При этом результаты выполнения отдельных запросов не передаются на компьютер пользователя, что в общем случае ускоряет выполнение и экономит трафик. Последнее особенно важно для игр, которые работают в мобильных приложениях ВКонтакте для Android и iOS.
- •
Для работы хранимых процедур не требуется сервер игры. То есть вы можете вынести часть бизнес-логики из серверного кода, тем самым упростив его.
В разделе настроек Хранимые процедуры вы можете создавать, проверять, редактировать и удалять хранимые процедуры для вашей игры.
Как открыть
Откройте панель управления игрой и в меню слева выберите Разработка → Хранимые процедуры.
Кому доступно
Раздел доступен администраторам игры со следующими правами:
- •
Создатель игры.
- •
Администратор с полным доступом.
- •
Администратор с частичным доступом, с правом «Редактирование».
Действия в разделе
Создать процедуру
- 1.
Нажмите Добавить процедуру.
Откроется экран редактирования процедуры.
Пример экрана редактирования процедуры - 2.
На экране редактирования:
- •
Укажите Название процедуры — строку от 1 до 100 символов. Допустимы только символы латинского алфавита.
Поле содержит ключевое слово
execute.для напоминания о том, как процедура будет вызываться в коде. Это слово не является частью имени процедуры. - •
В поле Версия API укажите версию API ВКонтакте, которая будет использована для вызова API-запросов из процедуры.
Параметры и возвращаемые значения API-запросов могут меняться от версии к версии. С помощью этого поля вы можете указать ожидаемую версию, чтобы избежать возможных проблем.
- •
Введите код процедуры. Подробности синтаксиса — в разделе Формат языка VKScript. Некоторые ключевые особенности описаны ниже.
- •
- 3.
Чтобы проверить, как работает код, нажмите Запустить. Результат отобразится под текстовым полем для ввода кода.
Перед выполнением процедуры платформа проверит синтаксис её кода и сообщит о первой найденной ошибке. Исправьте ошибки синтаксиса до сохранения процедуры.
Подробнее о тестовых запусках рассказано ниже.
- 4.
Когда всё будет готово, нажмите Сохранить.
Если в коде есть синтаксические ошибки, сохранить его не получится. Сначала исправьте ошибки.
Найти и отредактировать процедуру
- 1.
Чтобы найти процедуру в списке, в поле поиска введите несколько символов из её имени. Регистр символов — заглавные или прописные — не важен.
ВКонтакте отобразит те хранимые процедуры, название которых содержит введённую строку.
- 2.
Нажмите Редактировать процедуру для нужной процедуры. Откроется экран редактирования.
- 3.
Внесите изменения и нажмите Сохранить.
Где почитать про VKScript
Смотрите раздел Формат языка VKScript.
Некоторые ключевые особенности:
Особенность | |
|---|---|
Доступ к параметрам хранимой процедуры | Args.param_name |
Вызов API-запросов | var r = API.users.get( {"user_ids": 123} );
Здесь users.get — название группы и имя API-метода, как они указаны в документации. |
Доступ к результатам запроса | [email protected]_name |
Вернуть значение и выйти из процедуры | 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.
bridge.send("VKWebAppCallAPIMethod", {
method: "execute.ИМЯ-ПРОЦЕДУРЫ",
params: {
ПАРАМЕТР-1: "ЗНАЧЕНИЕ-1",
ПАРАМЕТР-2: "ЗНАЧЕНИЕ-2",
v: "ВЕРСИЯ-API", // Например, "5.134"
func_v: "ВЕРСИЯ-ПРОЦЕДУРЫ", // Например, "Версия 1"
access_token: "КЛЮЧ-ДОСТУПА"
}
});
Создать новую версию процедуры
Вы можете создать несколько версий хранимой процедуры. Механизм версионирования помогает поддерживать работоспособность игры при изменении процедуры.
Инициировать выполнение процедуры можно из серверного кода и из кода, который работает на клиентской стороне. При этом возможна ситуация, когда код на клиентской стороне не будет совместим с новым кодом процедуры. В таком случае вы можете создать новую версию процедуры и использовать её в обновлённом клиентском коде, в то время как старый код будет работать со старой версией.
Чтобы создать новую версию хранимой процедуры:
- 1.
Откройте процедуру для редактирования.
- 2.
В выпадающем списке Версия выберите версию, которую вы хотите клонировать.
- 3.
В этом же выпадающем списке нажмите Добавить новую версию. ВКонтакте создаст новую версию процедуры на основе выбранной.
Пункт «Добавить новую версию» появляется в списке после того, как вы сохраните процедуру в первый раз.
Создание новой версии хранимой процедуры - 4.
Введите код новой версии и сохраните изменения.
Чтобы сохранить изменения, внесите хотя бы минимальные изменения в код. Сохранить код без изменений не получится.
Удалить процедуру
- 1.
Откройте хранимую процедуру для редактирования.
- 2.
Нажмите Версия процедуры и выберите первую версию в списке.
- 3.
В правом нижнем углу нажмите Удалить, затем подтвердите действие.
Удаление процедуры
Если у процедуры несколько версий, при удалении первой будут удалены все версии.
Удалить версию процедуры
- 1.
Откройте хранимую процедуру для редактирования.
- 2.
Нажмите Версия процедуры и выберите версию из списка.
- 3.
В правом нижнем углу нажмите Удалить версию.
Удаление версии
Удалить первую версию процедуры нельзя. Она удаляется только вместе со всей процедурой.
Материалы по теме
- •
- •