Домашнее задание: клиент к vk.com

Страничка курса: https://maxcom.github.io/scala-course-2020/

План задания

  1. Классификатор текстов
  2. Reads для vk.com (только reads! writes не нужно)
  3. Стемминг и диагностика
    -------- мы находимся здесь -------
  4. Получаем сообщения API vk.com
  5. Сервис категоризации
  6. Опрос новых записей и хранение состояния на диске
  7. Realtime обновление

HTTP клиент в Play Framework

Подключаем HTTP Client: build.sbt


libraryDependencies += "com.typesafe.play" %% 
                        "play-ahc-ws-standalone" % "2.1.2"
libraryDependencies += "com.typesafe.play" %% 
                        "play-ws-standalone-json" % "2.1.2"
					

Инициализация

import akka.actor.ActorSystem
import play.api.libs.ws.ahc.StandaloneAhcWSClient
import scala.concurrent.ExecutionContext.Implicits._
import play.api.libs.ws.DefaultBodyReadables._

object Demo extends App {
  implicit val system: ActorSystem = ActorSystem()

  val wsClient = StandaloneAhcWSClient()

  wsClient.url("https://api.vk.com").get().map { response =>
    val body = response.body[String]
    println(s"Got a response $body")
  }
}

Документация.

Документации Play.

Обращаемся к API vk.com

Нет логина на vk.com?
заведите

Предварительные шаги:

  • Создаем новое приложение на vk.com
  • Включаем приложение
  • Запрашиваем access_token с нужными правами

Смотрим документацию:
Знакомство с API ВКонтакте

Какие нужны права:

  • wall,friends - доступ к ленте новостей
  • offline - без ограничений по времени

Пример URL:


https://oauth.vk.com/authorize?client_id=NNNNN&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=wall,friends,offline&response_type=token&v=5.52
					

не дает token - перелогиньтесь

Задача: вывести newsfeed в человеко-читаемом виде (не json!)

access_token не выкладывайте на gitlab!

Напоминаю: