В продолжение
предыдущего вопроса.
В общем, отказался от передачи кода алгоритма в VKScript (неудобно записывать код) в запросе и использовал хранимые процедуры. Код хранимой процедуры получился следующим:
var offset = parseInt(Args.offset);
var count = parseInt(Args.count);
var group_id = parseInt(Args.group_id);
if (group_id == 0) {
group_id = Args.group_id;
}
var loop = 25;
var members = [];
while (offset < count && loop) {
members = members + API.groups.getMembers({"group_id": group_id, "offset": offset}).users;
offset = offset + 1000;
loop = loop - 1;
}
return {"offset": offset, "members": members};
Код python-скрипта:
response = requests.get(url=f"{VK_API}/groups.getMembers",
params={
"group_id": VK_GROUP_ID,
"access_token": VK_TOKEN,
"v": VK_V
}).json()["response"]
count = response["count"]
members = response["users"]
offset = 1000
while offset < count:
response = requests.get(url=f"{VK_API}/execute.getMembers",
params={
"group_id": VK_GROUP_ID,
"count": count,
"offset": offset,
"access_token": VK_TOKEN,
"v": VK_V
}).json()["response"]
offset = response["offset"]
members += response["members"]
То есть сначала я делаю обычный запрос с той целью, чтобы узнать количество участников группы, а уже затем get-запросы к хранимой процедуре.
Может быть задачу получения списка участников группы можно реализовать корректнее?