Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Получение комментариев/участников сообщества VK.COM (API)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

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); // в случае ошибки выведем её
        }
    });
}

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 17:37 05-02-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
но всякий раз выводится сообщение об ошибке.

какое?

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 20:54 05-02-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Вот, пожалуйста, по первому примеру: https://i.imgur.com/au7OjVS.png
А это — если поменять местами owner_id и user_id: https://i.imgur.com/NSi70na.png
 
По второму примеру — при попытке запуска: https://i.imgur.com/KglPnqh.png
И при попытке сохранения процедуры: https://i.imgur.com/xAc0pCf.png

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 21:17 05-02-2018 | Исправлено: D1D1D1D, 21:19 05-02-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Вот, пожалуйста, по первому примеру: https://i.imgur.com/au7OjVS.png  

ну там явно говорит, что доступ закрыт, может закрыто для тех, кто не в списке.
 

Цитата:
По второму примеру — при попытке запуска:

тут тоже очевидно почему - не знает, что такое объект VK

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 21:21 05-02-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Выходит, надо другие процедуры искать, эти устарели?

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 21:24 05-02-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
ну там явно говорит, что доступ закрыт, может закрыто для тех, кто не в списке.

на своем же проверьте, или через браузер, убедившись что есть доступ.
 
насчет второго - ошибка с кодом. VK не проинициализировано на момент обращения к нему.

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 21:32 05-02-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо! Первая процедура действительно работает, но только если оставить поле user_id пустым, — хотя утверждалось, что сценарий производит выборку коммов конкретного пользователя. То есть, выводит комментарии к указанному количеству постов единым списком, но не выделяет из них по user_id.

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 21:43 05-02-2018 | Исправлено: D1D1D1D, 21:56 05-02-2018
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Получение комментариев/участников сообщества VK.COM (API)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru