Как подсчитать количество лайков к комментарию от участников группы (ВК)?

Есть приложения и сервисы по проверке «накрученных» лайков, но они работают с постами или фотками. Что делать в этой ситуации? Понимаю, что с использованием VK API это возможно, но мой уровень в этом чуть менее, чем 0.
  • Вопрос задан
  • 6483 просмотра
Решения вопроса 1
ArbuzzzzZ
@ArbuzzzzZ Автор вопроса
Итак, моё решение. Корявое, но работает.
1. vk.com/dev/execute
Вводим код:
var group_id = <id группы>;
var users = [];
var count = API.groups.getMembers({group_id: group_id}).count;
var offset = 0;
while (offset < count && offset <= 23000) {
users = users + API.groups.getMembers({group_id: group_id, offset: offset, count: 1000}).users;
offset = offset + 1000;
}
return users;

Полученный массив сохраняем в txt, заботливо заменив через Ctrl+H все запятые на ничего, чтобы было легче скормить будующей программке.

2. vk.com/dev.php?method=likes.getList
Здесь получаем массив id пользователей, оценивших запись, и записываем его в новый txt.

3. Мой корявый код программки, выводящей общие элементы этих массивов в новый файл.

#include #include #include <assert.h>
using namespace std;
int main()
{
//
int a[10000];
int i=0;
int j=0;
int s=0;
int b[200];

ifstream in;
ofstream out;

in.open(«input_1.txt»);
while (!in.eof()) {
i++;
in>>a[i];
}

in.close();
i=0;

in.open(«input_2.txt»);
while (!in.eof()) {
i++;
in>>b[i];
}
in.close();

out.open(«output_1.txt»);
for (i=0;i<9380;++i)
{
for (j=0;j<171;++j)
{
if (a[i]==b[j])
{
out<<a[i]<<", ";
cout<<j<<endl;
s++;
};
};
};
out<<endl<<«Total: „<<s;
out.close();
cin.get();
//
return 0;
}

Параметры a,b и условия циклов изменяются в зависимости от условий :)
Делал всё прямо в отладчике, поэтому изменяется всё прямо в коде.
Дальше чистим output_1 от возможно появившихся там нулей (так что Total не такую уж и правду говорит), запятые оставляем, потому что нам это потом скармливать VK…

4. vk.com/dev/users.get
Скармливаем сюда список полученных в третьем пункте id. На выходе получаем список id уже с именами и фамилиями (если fields оставить пустым).

5. Ну, этот список загоняем в txt и уже через Ctrl+H можно его привести в более-менее адекватный вид.

В общем, всё. Уверен, кто-то может сделать гораздо лучше, но и такой вот вариант с задачей справился.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Смотрим документацию: https://vk.com/dev/likes.getList
Например, нам нужно получить количество лайков коммента Александра Першина к посту https://vk.com/webfont?w=wall-45971686_240
В коде кнопки «Мне нравится» находим

<span class="like_link fl_l" id="like_link-45971686_wall_reply243" style="opacity: 1;">Мне нравится</span>

Первое число в id — это owner_id, второе — item_id
Подставив значение в конструктор с дев-страницы получаем запрос:
https://api.vkontakte.ru/method/likes.getList?type=comment&owner_id=-45971686&item_id=243
и получаем в ответ:

{"response":{"count":2,"users":[53901371,8324281]}}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы