За время использования vk.com накопилось немало диалогов, которые хотелось бы куда-то сохранить и изредка перечитывать. К тому же всегда интересно вспомнить с чего начиналась переписка с другом или подругой. Поэтому я решил написать для себя приложение, которое будет делать бэкап диалогов в html со всеми фотографиями, ссылками на видео и репостами.
Задачу можно разбить на два пункта:
1. Получение бэкапа диалогов.
2. Парсинг и вывод в нужный формат.
Цитата 16-фев-2017: По многочисленным просьбам добавил скомпилированное приложение с текстовым файлом настроек.
★ Получение бэкапа диалогов
Вконтакте предоставляет свой API для работы приложений. Именно его мы и будем использовать для получения сообщений.
Первым делом нужно создать в вк своё приложение. Идём в раздел для разработчиков http://vk.com/dev и нажимаем справа вверху кнопку Создать приложение. Задаём название, например «Dialog Saver» и тип Standalone-приложение. Нажимаем «подключить приложение», вводим номер мобильного телефона, ждём SMS с кодом, вводим его и переключаемся на вкладку Настройки, где содержится необходимая нам информация — ID приложения. Сохраняем где-нибудь этот номер и переходим к созданию Java-приложения.
Создания ВК бота с помощью Java
Создаём новый проект. Я буду использовать Java 8, чтобы показать всю его мощь и удобство.
Берём из полезных кодов или отсюда класс VkApi и закидываем в проект. Можно удалить методы getAlbums и getDialogs, они нам в этой задаче не нужны. Также можно убрать разрешение на доступ к фотографиям, в строке
replace ( «
» , «photos,messages» )
оставляем только messages.
Для работы библиотеки нужен ID приложения, которое мы создали и access token. Чтобы его получить нужно авторизоваться:
public static void main ( String [ ] args ) throws IOException {
VkApi. with ( APP_ID, null ) ;
После запуска откроется браузер со страницей подтверждения запросов приложения. Соглашаемся и копируем из адресной строки значение параметра access_token:
Теперь можно полноценно работать с VK API.
Для получения списка сообщений в нужном диалоге, нам понадобится метод messages.getHistory. В вк хорошо описаны параметры всех функций, к тому же можно поиграть с параметрами прям на странице.
В классе VkApi.java уже реализован этот метод. По аналогии можно сделать вызов любого другого.
Теперь нам надо достать всю переписку для указанного id пользователя. В методе getHistory есть ограничение — максимум 200 сообщений за раз, поэтому метод нужно вызывать циклично. Но тут срабатывает ещё одно ограничение — количество запросов в секунду не должно превышать 8-10, но и это лечится простой задержкой. Метод получения диалога с пользователем выглядит так:
Тестирование VK API при помощи VK Java SDK / Михаил Кузнецов
Источник: annimon.com
Vk api на java. Как сделать кнопки
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
Подписка на обсуждение 2
Подписка на раздел 8
Вам это нравится? Поделитесь в социальных сетях!
- Артур Мурашов
- #
- 24 марта 2022 г. 9:12
Првиет
line1.add(new KeyboardButton().setAction(new KeyboardButtonAction().setLabel(«Текст кнопки»).setType(TemplateActionTypeNames.TEXT)).setColor(KeyboardButtonColor.POSITIVE));
А вообще там градл уже другой
dependencies <
implementation ‘com.vk.api:sdk:1.0.7’
>
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Последние комментарии
Lissa28 апреля 2023 г. 14:01
Django — Урок 063. Полнотекстовый поиск на сайте для нескольких моделей с поддержкой мультиязычности Может быть пригодится тем, кто использует django-ckeditor-5 for admin + modeltranslation package. Поле для редактирования in models.py нужно прописывать как обычное текстовое. А вот в админ кла…
Lissa24 апреля 2023 г. 4:08
Django — Урок 063. Полнотекстовый поиск на сайте для нескольких моделей с поддержкой мультиязычности stackoverflow Я сделала триггеры для update полей и вектора: # Generated by Django 4.1 on 2023-04-23 20:45import django.contrib.postgres.searchfrom django.contrib.postgres.sear…
Evgenii Legotckoi24 апреля 2023 г. 2:43
Django — Урок 063. Полнотекстовый поиск на сайте для нескольких моделей с поддержкой мультиязычности А в чём это выражается? У меня поиск срабатывает по все подключённым языкам, в том числе и по украинскому.
Lissa24 апреля 2023 г. 2:34
Django — Урок 063. Полнотекстовый поиск на сайте для нескольких моделей с поддержкой мультиязычности К своему удивлению обнаружила, что украинский язык не включён в postgres-e в full text search. Есть какие-то кустарные варианты с прикручиванием файлов с stopwords и т.д.Я наверное сделаю «наивн…
Lissa19 апреля 2023 г. 12:47
Сейчас обсуждают на форуме
Evgenii Legotckoi29 марта 2023 г. 1:11
Замена поля ManyToMany Картинки точно нужно хранить в медиа директории на сервере, а для обращения использовать ImageField. Который будет хранить только путь к изображению на сервере. Хранить изображения в базе данных…
Evgenii Legotckoi24 апреля 2023 г. 0:22
Пакеты данных между сервером и клиентами Привет. Если классы имеют что-то общее в полях, а также общую идеологию и их можно вписать в иерархию наследования, то в первую очередь переписать так, чтобы один базовый класс объединял в…
Evgenii Legotckoi20 апреля 2023 г. 1:17
QSqlTableModel + QTableView + кастомный делегат QComboBox Круто, хорошо, что удалось разобраться 🙂
Алексей Бобров14 декабря 2021 г. 16:03
Sorting the added QML elements in the ListModel I am writing an alarm clock in QML, I am required to sort the alarms in ascending order (depending on the date or time (if there are several alarms on the same day). I’ve done the sorting …
Evgenii Legotckoi16 апреля 2023 г. 1:07
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Да, это возможно. Но подобные вещи лучше запускать через celery. То есть drf принимает команду, и после этого регистрирует задачу в celery, котроый уже асинхронно всё это выполняет. В противном …
Источник: evileg.com
JSON-схема и Java SDK ВКонтакте
Информация о материале Родительская категория: Социальные сети Категория: VK (ВКонтакте)
API ВКонтакте для разработчиков
Хорошие новости для разработчиков, использующих API ВКонтакте. Команда разработчиков в сентябре 2016 года отрапортовала о том, что они завершили работу над JSON-схемой API ВКонтакте и первой библиотекой, созданной на её основе — Java SDK. Оба проекта доступны на Github:
- JSON-схема: github.com/VKCOM/vk-api-schema
- Java SDK: github.com/VKCOM/vk-java-sdk
Что такое JSON-схема?
JSON Schema — это распространённый стандарт описания структуры данных. Спецификация стандарта и популярные сценарии его использования доступны на официальном сайте. Схема создана для описания JSON-данных, но и сама она при этом является JSON-объектом. С помощью ключевых слов в схеме создаются правила валидации структуры объекта и типов его полей.
Например, объект, хранящий основные данные пользователя, в JSON-схеме выглядит так:
По тому же принципу в схеме задан формат данных для всех методов API — их входных параметров, ответов и сообщений об ошибках. Синтаксис и структура схемы подробно описаны в документации ВКонтакте.
Как это можно использовать?
Схема — это готовая основа для создания клиента, работающего с API ВКонтакте, практически на любом языке программирования. Формализованное описание структуры данных позволяет использовать генераторы кода и существенно сэкономить время, уделив максимум внимания собственной логике Вашего приложения.
Пример такого подхода — Java SDK для API ВКонтакте, реализованный с помощью собственного кодогенератора на основе JSON-схемы.
Java SDK
Java SDK —это библиотека для работы с API ВКонтакте в приложениях, написанных на Java. SDK включает возможность вызова любого метода API, упрощает внедрение OAuth-авторизации и обработку ошибок.
Подробная документация проекта доступна на Github и на сайте ВКонтакте.
Разработчики ВКонтакте приглашают принять участие в публичном тестировании библиотеки. С пожеланиями, вопросами и найденными в бета-версии недочётами можно обращаться в Поддержку.
Другие платформы для API ВКонтакте
Естественно, что ВКонтакте заинтересованы в том, чтобы создание приложений с использованием их API было максимально простым и удобным на любой платформе. Поэтому просят Вас рассказывать о своих проектах, которые могли бы помочь другим разработчикам начать работать с ВКонтакте. Если Вы создали решение для взаимодействия с API на каком-нибудь распространенном (а может, наоборот, экзотическом?) языке программирования и готовы поделиться результатами своего труда с сообществом коллег, напишите в Поддержку и расскажите о Вашем проекте.
В документации для разработчиков будет создан отдельный раздел, посвящённый наиболее удачным примерам библиотек для работы с платформой, а их создатели будут первыми узнавать о новых возможностях нашего API и получать доступ к ним в приоритетном порядке.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Выберите, то, чем пользуетесь чаще всего:
Источник: mb4.ru