Получение информации о постах со стены ВКонтакта
Имеется следующий код для метода 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, время: 15:50. |