Вызов метода execute

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
Здравствуйте! Пытаюсь с помощью вызова метода execute спарсить всех подписчиков определенной группы вк. В Post запросе в Url прописано:
Код:
https://api.vk.com/method/execute
В данных:

Код:
code= var group = [];
var offset = 0;
while (offset < {-Variable.count-}){
var users = API.groups.getMembers({"group_id":{-Variable.gid-},"offset":offset});
group = group + [users];
offset = offset + 1000;
};
return group;&access_token={-Variable.token-}
Но вместо правильного ответа в ответ летит эта ошибка:
Код:
{"error":{"error_code":12,"error_msg":"Unable to compile code:  ';' expected, '1000' found in line 6","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"execute"},{"key":"code","value":" var group = [];\r\nvar offset = 0;\r\nwhile (offset &lt; 6497){\r\nvar users = API.groups.getMembers({\"group_id\":49749435,\"offset\":offset});\r\ngroup = group   [users];\r\noffset = offset   1000;\r\n};\r\nreturn group;"}]}}

Get запрос тоже вроде пробовал. Токен верный. В чем проблема?
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 542
Баллы
113
Перед отправкой запроса необходимо сделать UrlEncode самого кода.
Тогда всё будет работать, как часы:
Код:
https://api.vk.com/method/execute?access_token=ЗДЕСЬ_ТОКЕН&code=var+group+%3d+%5b%5d%3b%0d%0avar+offset+%3d+0%3b%0d%0awhile+(offset+%3C+{-Variable.count-})%7b%0d%0avar+users+%3d+API.groups.getMembers(%7b%22group_id%22%3a{-Variable.gid-}%2c%22offset%22%3aoffset%7d)%3b%0d%0agroup+%3d+group+%2b+%5busers%5d%3b%0d%0aoffset+%3d+offset+%2b+1000%3b%0d%0a%7d%3b%0d%0areturn+group%3b
 
Последнее редактирование:
  • Спасибо
Реакции: AdDorFit и FamilyMan

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 542
Баллы
113
А вообще, я рекомендую создать свое приложение: https://new.vk.com/dev
Далее Мои приложения -> Редактировать -> Хранимые процедуры. Создаем метод и добавляем свой код. Это куда проще и удобнее:
Код:
https://api.vk.com/method/execute.НАЗВАНИЕ_МЕТОДА?access_token=ЗДЕСЬ_ТОКЕН
 

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
А вообще, я рекомендую создать свое приложение: https://new.vk.com/dev
Далее Мои приложения -> Редактировать -> Хранимые процедуры. Создаем метод и добавляем свой код. Это куда проще и удобнее:
Код:
https://api.vk.com/method/execute.НАЗВАНИЕ_МЕТОДА?access_token=ЗДЕСЬ_ТОКЕН
Благодарю! Не подскажите еще, как сделать больше 25 запросов?
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 542
Баллы
113
Благодарю! Не подскажите еще, как сделать больше 25 запросов?
В рамках выполнения кода - никак.
Только если работать в многопоточном режиме, с разными токенами. Это позволит ускорить процесс.
 
  • Спасибо
Реакции: FamilyMan

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
Я вот вообще не понимаю, зачем вам в этом запроссе токены, если он работает без них
Код:
https://api.vk.com/method/groups.getMembers?group_id={-Variable.Grup_ID-}&sort=id_asc&offset={-Variable.offset-}&count=1000&v=5.52
вот вам рабочий гет запрос. Вместо {-Variable.Grup_ID-} впишите группу, а вместо {-Variable.offset-} ставите цифры 0,1000,2000 . Короче поставите цикл с постоянным увеличением этой переменной на 1к.

Выпарсивает в переменную по 1 тысяче пользователей за раз

Сам таким пользуюсь, поэтому рабочий
 
  • Спасибо
Реакции: stanar и FamilyMan

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
Не забудьте прикрутить проверку, чтоб если к-во пользователей группы >= {-Variable.offset-} парсинг продолжался, а иначе - закончить. А то будете до бесконечности парсить пустые значения кажись
 

AdDorFit

Новичок
Регистрация
11.12.2016
Сообщения
24
Благодарностей
2
Баллы
3
Скажите, пожалуйста, как внедрить смещение участников в этом методе? Выводятся первые 25к участников сообщества, но никак не пойму, как получать следующих. Текущий запрос:

Код:
https://api.vk.com/method/execute.xml?access_token=ТОКЕН&code=var+group+%3d+%5b%5d%3b%0d%0avar+offset+%3d+0%3b%0d%0awhile+(offset+%3C+25000)%7b%0d%0avar+users+%3d+API.groups.getMembers(%7b%22group_id%22%3aСООБЩЕСТВО%2c%22offset%22%3aoffset%7d)%3b%0d%0agroup+%3d+group+%2b+%5busers%5d%3b%0d%0aoffset+%3d+offset+%2b+1000%3b%0d%0a%7d%3b%0d%0areturn+group%3b
 

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
Скажите, пожалуйста, как внедрить смещение участников в этом методе? Выводятся первые 25к участников сообщества, но никак не пойму, как получать следующих. Текущий запрос:

Код:
https://api.vk.com/method/execute.xml?access_token=ТОКЕН&code=var+group+%3d+%5b%5d%3b%0d%0avar+offset+%3d+0%3b%0d%0awhile+(offset+%3C+25000)%7b%0d%0avar+users+%3d+API.groups.getMembers(%7b%22group_id%22%3aСООБЩЕСТВО%2c%22offset%22%3aoffset%7d)%3b%0d%0agroup+%3d+group+%2b+%5busers%5d%3b%0d%0aoffset+%3d+offset+%2b+1000%3b%0d%0a%7d%3b%0d%0areturn+group%3b
Через счетчик. В Зенке который. Когда значение больше 25K, делай ofsset равный 25K
 
  • Спасибо
Реакции: AdDorFit

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)