Получение информации о постах со стены ВКонтакта
Имеется следующий код для метода execute, с помощью которого можно получать информацию по количеству лайков, репостов, комментариев, дат и айди (см. среди закомментированного) — к до двух тысячам пяти ста постам указанного сообщества или профиля (например, при использовании для мониторинга обновлений в группе). Есть ли возможность настроить код на получение инфы одновременно с двух стен (в частности, сообществ), чтобы в одном сообщении приходило два массива с сотней айди к двум разным сообществам (код ниже настроен на сотню для одного сообщества)? Подошло бы решение в том числе с дублированием кода, но чтобы за один раз код отрабатывал дважды для разных сообществ.
// [url]https://ru.stackoverflow.com/questions/479670/[/url] var ITERS = 1; // до 25 итераций var COUNT = 100; // до 100 постов за 1 итерацию var posts = []; var req_params = { "owner_id" : Args.id, // здесь вместо аргументов в кавычках можно указать айди группы "offset" : 0, "count" : COUNT, "v" : "5.34" }; var i = 0; while(i < ITERS){ req_params.offset = i*COUNT + ITERS*COUNT*Args.offset; var items = API.wall.get(req_params).items; if (items.length == 0) { return posts; } var ids = items@.id; var tmp = {}; //tmp.chunk_size = ids.length; tmp.ids = ids; //tmp.likes = [email]items@.likes@.coun[/email]t; //tmp.reposts = [email]items@.reposts@.coun[/email]t; //tmp.comments = [email]items@.comments@.coun[/email]t; //tmp.dates = items@.date; posts.push(tmp); i = i + 1; } return posts; |
Как самый простой вариант - добавить массив с ID групп и обернуть всю это в общий цикл
var posts = []; var groupIds = [1,2]; // массив с ID групп for (let id of groupIds) { posts[id] = []; var ITERS = 1; // до 25 итераций var COUNT = 100; // до 100 постов за 1 итерацию var req_params = { "owner_id" : id, // здесь вместо аргументов в кавычках можно указать айди группы "offset" : 0, "count" : COUNT, "v" : "5.34" }; var i = 0; while(i < ITERS){ req_params.offset = i*COUNT + ITERS*COUNT*Args.offset; var items = API.wall.get(req_params).items; if (items.length == 0) { break; } var ids = items@.id; var tmp = {}; //tmp.chunk_size = ids.length; tmp.ids = ids; //tmp.likes = [email]items@.likes@.coun[/email]t; //tmp.reposts = [email]items@.reposts@.coun[/email]t; //tmp.comments = [email]items@.comments@.coun[/email]t; //tmp.dates = items@.date; posts[id].push(tmp); i = i + 1; } } return posts; И что за метод используется? Может, там можно передать айди групп через запятую? |
Выяснилось, что там используется немного урезанный по возможностям яваскрипт, видимо поэтому выводит ошибку синтаксиса:
![]() Мне еще подсказали следующий код, но там он тоже не отрабатывает: var listz = ["-29534144", "-125004421"]; var ITERS = 1; // до 25 итераций var COUNT = 100; // до 100 постов за 1 итерацию var posts = []; var j = 0; while(j < listz.length) { var req_params = { "owner_id" : listz[j], "offset" : 0, "count" : COUNT, "v" : "5.34" }; var i = 0; while(i < ITERS){ req_params.offset = i*COUNT + ITERS*COUNT*Args.offset; var items = API.wall.get(req_params).items; if (items.length == 0) { return posts; } var ids = items@.id; var tmp = {}; tmp.ids = ids; posts[listz[j]].push(tmp); i = i + 1; } j = j + 1; } return posts; |
А вот про метод я не в курсе.
|
Может имелся в виду метод execute? Да, это он))
|
Часовой пояс GMT +3, время: 04:54. |