Хранимые процедуры (настройки игр)
Хранимые процедуры — функции на языке VKScript, код которых хранится в настройках игры, а выполняется на стороне серверов ВКонтакте.
- •
Каждая процедура может выполнять один или несколько API-запросов. При этом результаты выполнения отдельных запросов не передаются на устройство пользователя, что ускоряет работу игры и экономит трафик. Последнее особенно важно для игр, которые работают на мобильных устройствах.
- •
Для работы хранимых процедур не требуется сервер игры. Благодаря этому вы можете вынести часть бизнес-логики из серверного кода, тем самым упростив его.
В разделе настроек Хранимые процедуры вы можете создавать, проверять, редактировать и удалять хранимые процедуры вашей игры.
Чтобы открыть раздел
- 1.Перейдите в список приложений.
- 2.Откройте настройки нужной игры.
- 3.В меню слева выберите Разработка → Хранимые процедуры.
Доступ
Редактировать хранимые процедуры может:
- •
Создатель игры.
- •
Администратор с полным доступом.
- •
Администратор с частичным доступом, с правом «Редактирование».
Подробнее о правах — в разделе Администраторы.
Действия с процедурами
Создать процедуру
- 1.
Нажмите Добавить процедуру.
- 2.
Введите название процедуры латинскими буквами. Длина: от 1 до 100 символов.
Название процедуры для вызова в коде всегда начинается с префикса
execute.Этот префикс изменить нельзя. - 3.
В поле Версия API укажите версию API ВКонтакте, которая будет использована для вызова API-запросов из процедуры.
Параметры и возвращаемые значения API-запросов могут различаться в зависимости от версии. Выберите ожидаемую версию, чтобы избежать возможных проблем.
- 4.
Введите код процедуры. Некоторые ключевые особенности синтаксиса описаны в разделе VKScript.
- 5.
Чтобы проверить, как работает код, нажмите Запустить. Результат отобразится под полем для ввода кода. Данные отображаются в том виде, в котором они будут переданы в код вызова процедуры.
Перед запуском платформа проверяет синтаксис кода процедуры. Код с синтаксическими ошибками нельзя выполнить и сохранить.
- 6.
Когда всё будет готово, нажмите Сохранить.
Редактировать процедуру
- 1.
Чтобы найти процедуру в списке, в поле поиска начните вводить её название.
- 2.
Нажмите на строку с нужной процедурой.
- 3.
Внесите изменения и нажмите Сохранить.
Чтобы выйти без сохранения, нажмите Вернуться назад в правом верхнем углу экрана. В этом случае все изменения будут отклонены.
Создать версию процедуры
Чтобы игра продолжила работать даже при изменении кода хранимой процедуры, вы можете создать для процедуры несколько версий.
Инициировать выполнение процедуры можно из серверного кода и из кода, который работает на клиентской стороне. При этом возможна ситуация, когда код на клиентской стороне не будет совместим с новым кодом процедуры. В таком случае вы можете создать новую версию процедуры и использовать её в обновлённом клиентском коде, в то время как старый код будет работать со старой версией.
Чтобы создать версию хранимой процедуры:
- 1.
Откройте процедуру для редактирования и в выпадающем списке Версия процедуры выберите ту, которую вы хотите использовать как исходную.
- 2.
В этом же списке нажмите Добавить версию. Новая версия процедуры будет создана на основе выбранной.
Кнопка Добавить версию появится после того, как вы сохраните процедуру в первый раз.
Создание новой версии хранимой процедуры - 3.
Введите код новой версии и сохраните изменения.
Удалить процедуру
Чтобы удалить хранимую процедуру и все её версии:
- 1.
Найдите процедуру в списке. Для этого в поле поиска начните вводить её название.
- 2.
Наведите указатель на нужную строку и нажмите Удалить процедуру.
Удалить версию процедуры
Чтобы удалить отдельную версию хранимой процедуры:
- 1.
Откройте процедуру для редактирования.
- 2.
Нажмите Версия процедуры и выберите версию из списка.
Важно! Если у процедуры несколько версий, при удалении первой будут удалены все версии.
- 3.
В правом нижнем углу нажмите Удалить версию.
Удаление версии процедуры
Выполнение процедуры
Выполнить тестовый запуск
Чтобы проверить работу хранимой процедуры, откройте её для редактирования и нажмите Запустить.
- •Результат отобразится под полем для ввода кода.
- •Данные отображаются в том виде, в котором они будут переданы в код вызова процедуры.
- •Перед запуском платформа проверяет синтаксис кода процедуры. Код с синтаксическими ошибками выполнить не получится.
В поле отобразится информация о первой найденной синтаксической ошибке: текст на красном фоне с описанием ошибки и номером строки в коде.
Пример сообщения о синтаксической ошибке
Вызов процедуры в коде
Чтобы выполнить процедуру, вызовите метод API execute и передайте название и параметры процедуры. Параметры хранимой процедуры указываются при её вызове — объявлять их в редакторе процедуры не нужно. Чтобы обратиться к параметру, используйте синтаксис Args.param-name.
curl -X POST 'https://api.vk.ru/method/execute.<ИМЯ-ПРОЦЕДУРЫ>' \
-H 'Authorization: Bearer <КЛЮЧ-ДОСТУПА>' \
-F 'v=<ВЕРСИЯ-API>' \
-F 'func_v=<ВЕРСИЯ-ПРОЦЕДУРЫ>' \
-F '<ПАРАМЕТР-1>=<ЗНАЧЕНИЕ-1>' \
-F '<ПАРАМЕТР-2>=<ЗНАЧЕНИЕ-2>'Хранимую процедуру также можно вызвать с помощью события VKWebAppCallAPIMethod.
bridge.send("VKWebAppCallAPIMethod", {
method: "execute.<ИМЯ-ПРОЦЕДУРЫ>",
params: {
<ПАРАМЕТР-1>: "<ЗНАЧЕНИЕ-1>",
<ПАРАМЕТР-2>: "<ЗНАЧЕНИЕ-2>",
v: "<ВЕРСИЯ-API>",
func_v: "<ВЕРСИЯ-ПРОЦЕДУРЫ>",
access_token: "<КЛЮЧ-ДОСТУПА>"
}
});VKScript
Некоторые ключевые особенности языка VKScript перечислены в таблице.
Особенность | |
|---|---|
Доступ к параметрам хранимой процедуры | Args.param_name |
Вызов API-запросов | var r = API.users.get( {"user_ids": 123} );
Здесь users.get — название группы и имя API-метода, как они указаны в документации. |
Доступ к результатам запроса | r@.field_name |
Вернуть значение и выйти из процедуры | return { "result": 12345}; |
Создание функций внутри процедуры | Не поддерживается. |
Материалы по теме
- •
- •