Vk api java Пример

Буду рад любым наводкам. Ещё больше буду благодарен, если приведёте пример кода, как авторизовываться и хранить эту авторизацию, как взаимодействовать с API (простейшие примеры).

Отслеживать
задан 12 мар 2017 в 13:52

Вы уже рассмотрели их SDK для Java? Прочитайте про процесс получения ключа доступа, такой ключ может быть постоянным, если было выдано разрешение offline.

12 мар 2017 в 14:01

У ВК есть СДК для явы github.com/VKCOM/vk-java-sdk. А так вам надо всего лишь слать обычные сетевые запросы и всё.

12 мар 2017 в 14:01
Для начала надо определиться с сервером. Jetty пробовали?
12 мар 2017 в 14:01
12 мар 2017 в 14:02

Цитата: . Далее необходимо указать и подтвердить конечный адрес сервера, куда в дальнейшем будут направлены все запросы. . после получения уведомления Ваш сервер должен возвращать строку «ok» и статус HTTP 200. Если сервер несколько раз подряд вернет ошибку, Callback API временно перестанет отправлять на него уведомления. — Если приложение может выполнять, к примеру, такие функции, то можно и без сервера 🙂

Тестирование VK API при помощи VK Java SDK / Михаил Кузнецов

12 мар 2017 в 14:08

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Для Вашей цели почти наверняка подойдет Java SDK от самих VK. На странице SDK подробная документация (и, в частности, инструкция по получению access-токена пользователя).

Перед тем, как погружаться в работу SDK, лучше прочитать про то, как работает API Вконтакте (это небольшая статья).

Скорее всего, вам нужно именно standalone-приложение. Для них нормально в качестве REDIRECT_URI использовать https://oauth.vk.com/blank.html (это даже обязательно для некоторых методов API).

Еще по теме:  Как отвязать номер телефона от ВК и удалить страницу

Чтобы access-токен жил вечно, в scope добавьте значение offline .

С API без SDK взаимодействуют так:

// формируют url запроса String url = «https://api.vk.com/method/messages.get?count=20; URL obj = new URL(url); HttpURLConnection connection = (HttpURLConnection) obj.openConnection(); // из документации: параметры могут передаваться как методом GET, так и POST. Если вы будете передавать большие данные (больше 2 килобайт), следует использовать POST. connection.setRequestMethod(«GET»); // посылаем запрос и сохраняем ответ BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) < response.append(inputLine); >in.close(); // выведет json-ответ запроса System.out.println(response.toString());

(код get-запроса взял отсюда) А далее нужно распарсить полученный json -ответ.

Авторизация — труднее. Там надо открыть окно браузера со сформированным url , задетектить редирект, распарсить access_token в новом url .

Хорошим упражнением будет походить по исходникам Java SDK и разобраться, как реализовано там. Например, исполнение message.get начинается тут.

Источник: ru.stackoverflow.com

Создания ВК бота с помощью Java

Just keep it simple

Иногда возникает необходимость автоматизировать некоторые действия в какой-нибудь абстрактной, или не совсем абстрактной, социальной сети, такой как vk.com. Например, в последнее время были популярны обсуждения на тему скачивания своей аудиоколлекции на постоянные носители.
Здесь будем рассматривать только один частный случай — API для vk.com.
Итак, задача — собирать сообщения из интересующей группы, чтобы не загромождать кодом этот пост, построим лишь простой «скелет», для возможных будущих наработок.

  • Для работы через API вам потребуется stand-alone приложение, создать его можно вот здесь. Там все довольно просто, выбираете название и тип. Вообще говоря, создавать свое приложение вовсе не обязательно, можете и мое использовать — дело в том, что при дальнейшем запросе определенных прав для данного приложения, мы получим токен, и этот токен самому приложению известен не будет, следовательно, даже если вы используете мое приложение, я не смогу получить доступ к вашей конфиденциальной информации.
  • Дальше, для авторизации будет использоваться протокол OAuth, все что нужно сделать на этом шаге — создать правильную строку запроса, об этом расписано вот тут.
Еще по теме:  Вконтакте pack для чего

https://oauth.vk.com/authorize? client_id=APP_ID redirect_uri=REDIRECT_URI v=API_VERSIONaccess_token=ACCESS_TOKEN

Источник: kwisat.blogspot.com

VK notifer на java

Все, что осталось, это создать экземпляр класса, получить token и в бесконечном цикле получать списки сообщений. Если вновь полученный список отличается от предыдущего, тогда выводим уведомление о новом сообщении.
В результате получаем:

public static void main(String[] args) throws IOException, URISyntaxException, AWTException, InterruptedException, NoSuchAlgorithmException < //Создадим раскрывающееся меню PopupMenu popup = new PopupMenu(); //Создадим элемент меню MenuItem exitItem = new MenuItem(«Выход»); //Добавим для него обработчик exitItem.addActionListener(new ActionListener()< public void actionPerformed(ActionEvent e) < System.exit(0); >>); //Добавим пункт в меню popup.add(exitItem); SystemTray systemTray = SystemTray.getSystemTray(); //получим картинку Image image = Toolkit.getDefaultToolkit().getImage(«vk_icon.png»); TrayIcon trayIcon = new TrayIcon(image,»VKNotifer»,popup); trayIcon.setImageAutoSize(true); //добавим иконку в трей systemTray.add(trayIcon); trayIcon.displayMessage(«VKNotifer», «Соединяемся с сервером»,TrayIcon.MessageType.INFO); //Создадим экземпляр класса ВКапи VKapi vkAPI = new VKapi(); //Получим токен vkAPI.setConnection(); trayIcon.displayMessage(«VKNotifer», «Соединение установлено»,TrayIcon.MessageType.INFO); //Бескоечный цикл String oldMessage = vkAPI.getNewMessage(); String newMessage; int i = 0; for (;;) < // Запросы на сервер можно подавать раз в 3 секунды Thread.sleep(3000); // ждем три секунды if (i == 15000)< // Если прошло 45 000 сек (Время взято с запасом, токен дается на день ) vkAPI.setConnection(); // Обновляем токен Thread.sleep(3000); // Запросы шлем только раз в три секунды i = 0; >//Здесь отработка newMessage = vkAPI.getNewMessage(); if (!newMessage.equals(oldMessage)) < oldMessage = newMessage; trayIcon.displayMessage(«VKNotifer», «Получено новое сообщение»,TrayIcon.MessageType.INFO); Tools.playDrum(Drum.d53_Ride_Bell, 127,0); >i++; > >

Кроме всплывающего окна, также используется звуковое оповещение.
Tools.playDrum(Drum.d53_Ride_Bell, 127,0);

Для этого используется библиотека из этого топика

Я знаю, что это не идеальное исполнение, но самое главное — оно вполне решило мои проблемы. Спасибо за внимание.

  • социальные сети
  • java
  • вконтакте api.

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...