Skip to content

Автоматизируйте размещение информации в ВКонтакте!

Notifications You must be signed in to change notification settings

GTVolk/VkPoster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VK POSTER

Программа для автоматизированной рассылки сообщений по выбранным группам ВК и их обсуждениям

Фичи

  • Консольный, легковесный интерфейс
  • Автоматическое размещение сообщений на стенах сообществ
  • Автоматическое размещение комментариев в обсуждениях сообществ
  • Списки исключений обработки сообществ и обсуждений
  • Проверка актуальности сообщения, если сообщение ещё актуально, оно не будет создано
  • Задержка отправки для предотвращения спама и распознавания как бота
  • Несколько типов авторизации на выбор
  • Гибкая настройка
  • Полностью прозрачная и безопасная работа. Вы создаете своё приложение и сами им управляете

Создание Standalone-приложения

  1. Зайдите на сайт https://vk.com/dev
  2. Перейдите на вкладку "Мои приложения"
  3. Нажмите "Создать"
  4. Введите название приложения и выберите "Standalone-приложение"
  5. Нажмите "Подключить приложение"

Тип авторизации CODE_FLOW. Получение ИД приложения, защищенного ключа и кода авторизации

  1. В созданном приложении перейдите на вкладку "Настройки"
  2. Запишите "ID приложения"
  3. Ниже есть строка "Защищённый ключ"
  4. Откройте ссылку https://oauth.vk.com/authorize?client_id=<ВАШ ID ПРИЛОЖЕНИЯ>&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=268431359&response_type=code&v=5.131&state=123456
  5. Откроется пустая страница из адресной строки которой нужно получить значение параметра code, это и будет код авторизации

При отсутствии каких-либо параметров приложение само их запросит и покажет вашу ссылку

Тип авторизации TOKEN (по-умолчанию). Получение ИД пользователя и токена доступа

  1. В созданном приложении перейдите на вкладку "Настройки"
  2. Запишите "ID приложения"
  3. Откройте ссылку https://oauth.vk.com/authorize?client_id=<ВАШ ID ПРИЛОЖЕНИЯ>&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=268431359&response_type=token&v=5.131&state=123456
  4. Откроется пустая страница из адресной строки которой нужно получить значение параметров access_token (Токен доступа) и user_id (ИД пользователя) это и будут нужные для API параметры

При отсутствии каких-либо параметров приложение само их запросит и покажет вашу ссылку

Подготовка

  • Зайдите https://vk.com/bookmarks?type=group и создайте новую метку по кнопке "Создать новую метку"
  • При наведении мышкой на группу в дополнительном меню "Настроить метки" выберите созданную метку

Описание настроек

  • authType: Множество(CODE_FLOW, TOKEN) - Тип авторизации
  • appId: Число - ИД приложения
  • secretKey: Строка - Ваш защищенный ключ приложения
  • redirectUri: Строка - URL перенаправления запроса. По-умолчанию https://oauth.vk.com/blank.html
  • authorizationCode: Строка - Ваш код авторизации
  • userId: Число - Ваш UserID полученный на предыдущем шаге
  • accessToken: Строка - Ваша хеш-строка с токеном доступа полученным на предыдущем шаге
  • tags: Список строк - Список меток с группами в разделе "Избранное", в эти группы будет осуществляться рассылка сообщений
  • postMessage: Строка - Сообщение, которое будет рассылаться
  • postMessageQuery: Строка - Сообщение или его часть, которая будет использоваться для поиска, если такое сообщение будет найдено, то пост создан не будет. Например, если мы хотим разместить запись "Продам гараж, телефон +7 (999) 399 29 29", и задав в этом параметре "Продам гараж", то если в какой-либо группе на стене в пределах groupPostQuerySize (см. далее) или в обсуждении в пределах groupTopicQuerySize (см. далее) будет найдено сообщение "Продам гараж", то сообщение размещено не будет, иначе будет создано.
  • postToGroups: Логический - true - если размещаем посты на стене сообществ, false - не размещаем
  • postToGroupsTopics: Логический - true - если размещаем посты в обсуждениях сообществ, false - не размещаем
  • tagPagesQuerySize: Число - Количество групп которые будут получены из метки и обработаны (максимум 100)
  • groupPostQuerySize: Число - Количество постов на стене, которые будут получены из группы и, в рамках которых, будет поиск по postMessageQuery (см. выше)(максимум 100)
  • groupTopicQuerySize: Число - Количество комментариев в обсуждениях, которые будут получены из обсуждения и, в рамках которых, будет поиск по postMessageQuery (см. выше) (максимум 100)
  • excludedGroups: Список чисел - Задает список ИД групп, которые необходимо пропустить и не выкладывать у них на стену ничего и никогда (сообщества всё ещё будут обработаны)
  • excludedGroupsTopics: Список ключ-значение (Ключ: число, Значение: список чисел) - Ключ - ИД группы, Значения - ИД обсуждений. Задает список обсуждений групп, которые необходимо пропустить и не выкладывать в них ничего и никогда.

TODO:

  • GUI с выбором групп, обсуждений
  • Автоматическое получение AccessToken по защищённому ключу
  • Котлин!
  • Список исключений в названиях групп и обсуждений
  • Список исключений в ключевых словах
  • Разные сообщения для разных групп
  • Разделение обязанностей по сервисам
  • Тесты на сервисы
  • Комментарии
  • Рефакторинг