http vk com dev execute

Внутри code может содержаться не более 25 обращений к методам API.

То же самое можно более коротко записать так:

Поддерживаются:

  • арифметические операции
  • логические операции
  • создание массивов и списков ([X,Y])
  • parseInt и parseDouble
  • конкатенация (+)
  • конструкция if
  • фильтр массива по параметру (@.)
  • вызовы методов API, параметр length
  • циклы, используя оператор while
  • методы Javascript: slice, push, pop, shift, unshift, splice, substr, split
  • оператор delete
  • присваивания элементам маcсива, например: row.user.action = «test»;
  • поиск в массиве или строке — indexOf, например: «123».indexOf(2) = 1, [1, 2, 3].indexOf(3) = 2. Возвращает -1, если элемент не найден.

В данный момент не поддерживается создание функций.

Обращение к элементам массива с результатом какого-либо метода всего должно основываться на структуре JSON, а не XML. Например, правильным обращением является API.photos.search(<"q":"Nature","count":3>).items@.owner_id;, а не API.photos.search(<"q":"Nature","count":3>).items@.photo@.owner_id;

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

В методе execute поддерживаются логические операции (больше), = (больше или равно), == (равно) и != (не равно). В данный момент поддерживаются сравнения двух строк, двух чисел и строки и числа (в этом случае строка приводится к числу).

Результат логического выражения может быть использован в управляющей конструкции if . [else . ]:

Возвращает данные, запрошенные алгоритмом. При работе с методом execute структура ответа в XML ближе к JSON и может незначительно отличаться от стандартного представления других методов.

Обратите внимание: версия API, указанная при вызове execute, не применяется автоматически к методам, вызываемым внутри code.

Обратите внимание! Существует ограничение на объем ответа. В случае, если данные в ответе занимают больше 5 МБ, вернется ошибка 13 с комментарием «response size is too big».

Ни для кого не секрет, что VK API возвращает за один запрос к методу groups.getMembers не более 1 000 участников. В одну секунду вы можете получить максимум 3 000 участников, так как установлено ограничение на количество запросов в секунду до 3. Эту проблему решает метод execute, с помощью которого вы можете получить более 100 000 участников за одну секунду и до 25 000 участников за один запрос. В этой статье я расскажу Вам, как я это реализовал.

Без использования метода execute, процесс получения участников группы с аудиторией в 4 000 000 человек займет примерно около 22 минут, и нам нужно будет выполнить около 4 000 запросов к API. С помощью метода execute мы ускорим этот процесс примерно до 40 секунд и выполним всего около 160 запросов.

Это универсальный метод, который позволяет запускать последовательность других методов, сохраняя и фильтруя промежуточные результаты.
Делается обычный запрос как и на все другие методы, но в параметрах нужно передать code написанный на VKScript.

Что поддерживает VKScript и что это?

Это язык похожий на JavaSсript или ActionScript. Алгоритм должен завершаться командой return %выражение%. Операторы должны быть разделены точкой с запятой.

Поддерживаются:

  • арифметические операции
  • логические операции
  • создание массивов и списков ([X,Y])
  • parseInt и parseDouble
  • конкатенация (+)
  • конструкция if
  • фильтр массива по параметру (@.)
  • вызовы методов API, параметр length
  • циклы, используя оператор while
  • методы Javascript: slice, push, pop, shift, unshift, splice, substr
  • оператор delete
  • присваивания элементам массива, например: row.user.action = «test»;

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

Пишем простую функцию которая рекурсий будет дергать процедуру описанную ниже execute.getMembers.

Чтобы получить участников группы мы будем использовать execute, за один запрос мы получим 25 000 участников. Execute позволяет сделать до 25 запросов описанных с помощью языка VKScript. В параметре code нам нужно передать алгоритм на языке VKScript.

Создана процедура getMembers, которую мы будем дергать с клиента 3 раза в секунду.

На случай если лежит VK, то выглядело так:

Здравствуйте. Не удаётся настроить запуск процедуры execute (использован первый код отсюда, возвращающий 2500 постов из сообщества ВК) — согласно следующей конструкции:

По её запуску почему-то приходят посты с привязанного к токену профиля, хотя если запускать процедуру по кнопке из интерфейса execute — команда отрабатывает.

Как её правильно записать в виде ссылки на процедуру?

1 ответ 1

Сделал более «хороший» код(мне он приятнее, по-крайней мере)

Вызывать:
https://api.vk.com/method/execute.posty_V_Tcikle ?owner_ >
Параметры extended , count , offset не обязательны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками вконтакте api execute или задайте свой вопрос.

Связанные

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Оцените статью