Скрипт для поиска документов, находящихся в открытом доступе у пользователей VK.
Для работы с VK API программа запрашивает токен доступа, после чего сохраняет его в файл. Для более удобной работы есть возможность именования добавления нескольких токенов.
Токены доступа хранятся локально, ни на какой сервер они не отправляются.
Для работы программы необходимо подключить библиотеку curl для c++ и заголовочный файл скрипта из папки src.
Пример программы:
#include "docScript.h"
using namespace vkscript;
int main(int argc, char* argv[])
{
docScript script;
script.auth(); // Получение токена
// script.auth("/Имя сохраненного токена");
script.setUser("2314852"); // id пользователя для поиска
script.setStartPoint(165123055); // Точка начала поиска
script.setEndPoint(165123050); // Точка конца поиска
script.start();
return 0;
}
После завершения поиска программа сохранит результат в папке results или, в случае ошибки (что бывает довольно часто при больших объемах поиска), прогресс сохранится в папке backups.
Для возобновления поиска используется метод loadBackup("path"), где path - путь к нужному файлу из папки backups.
Пример с использованием загрузки бэкапа через параметр запуска:
int main(int argc, char* argv[])
{
docScript script;
script.auth(); // Получение токена
if (argc > 1)
{
script.loadBackup(argv[1]);
}
else { // Обычный поиск при отсутствии параметра argv
script.setUser("2314852"); // id пользователя для поиска
script.setStartPoint(165123055); // Точка начала поиска
script.setEndPoint(165123050); // Точка конца поиска
}
script.start();
return 0;
}
docScript использует следующие зависимости:
- Kolsha/VK - здесь описаны методы авторизации и отправки запросов к VK API
- CURL - библиотека для работы с HTTP-запросами
- nlohmann/json - используется для удобной записи и чтения текстовой информации
- Для получения ключа доступа в приложении используется безопасный для ваших аккаунтов протокол OAuth 2.0
- Поиск осуществляется исключительно по документам находящимся в открытом доступе, включая файлы на закрытых профилях.
- Одного токена хватает примерно на час непрерывной работы, после чего ВК возвращает ошибку 29.
- За час работы токена удалось просканировать более 4 миллионов ID.
С тех пор как ВК при загрузке файла начал ставить тег "Личный файл" по умолчанию, полезность такого метода поиска стала стремится к нулю.
Изначально планировалась маленькая программка для личного пользования, но в процессе написания кода я увидел потенциал для развития собственных навыков программирования, и поэтому постарался реализовать возможность для расширения.