D1D1D1D
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Возник вопрос по предложенному в этом ответе решению, касающемуся получения комментариев пользователя, оставленных в конкретном сообществе на vk, путём использования метода execute. Вроде, воспроизвёл у себя в приложении процедуру, подставил ID профиля и ID случайного пользователя из комментария к первому посту к этому профилю (менял их местами), но всякий раз выводится сообщение об ошибке. Прошу взглянуть: https://i.stack.imgur.com/cixeP.png Кроме того, по тому же методу не удаётся задействовать следующий код (отсюда), получающий список участников сообщества: Код: VK.init({ apiId: 6456476 // ID вашего приложения VK }); var membersGroups = []; // массив участников группы getMembers(30666517); // получаем информацию о группе и её участников function getMembers(group_id) { VK.Api.call('groups.getById', {group_id: group_id, fields: 'photo_50,members_count', v: '5.27'}, function(r) { if(r.response) { $('.group_info') .html('<img src="' + r.response[0].photo_50 + '"/><br/>' + r.response[0].name + '<br/>Участников: ' + r.response[0].members_count); getMembers20k(group_id, r.response[0].members_count); // получаем участников группы и пишем в массив membersGroups } }); } // получаем участников группы, members_count - количество участников function getMembers20k(group_id, members_count) { var code = 'var members = API.groups.getMembers({"group_id": ' + group_id + ', "v": "5.27", "sort": "id_asc", "count": "1000", "offset": ' + membersGroups.length + '}).items;' // делаем первый запрос и создаем массив + 'var offset = 1000;' // это сдвиг по участникам группы + 'while (offset < 25000 && (offset + ' + membersGroups.length + ') < ' + members_count + ')' // пока не получили 20000 и не прошлись по всем участникам + '{' + 'members = members + "," + API.groups.getMembers({"group_id": ' + group_id + ', "v": "5.27", "sort": "id_asc", "count": "1000", "offset": (' + membersGroups.length + ' + offset)}).items;' // сдвиг участников на offset + мощность массива + 'offset = offset + 1000;' // увеличиваем сдвиг на 1000 + '};' + 'return members;'; // вернуть массив members VK.Api.call("execute", {code: code}, function(data) { if (data.response) { membersGroups = membersGroups.concat(JSON.parse("[" + data.response + "]")); // запишем это в массив $('.member_ids').html('Загрузка: ' + membersGroups.length + '/' + members_count); if (members_count > membersGroups.length) // если еще не всех участников получили setTimeout(function() { getMembers20k(group_id, members_count); }, 333); // задержка 0.333 с. после чего запустим еще раз else // если конец то alert('Ура тест закончен! В массиве membersGroups теперь ' + membersGroups.length + ' элементов.'); } else { alert(data.error.error_msg); // в случае ошибки выведем её } }); } |
|