こんどは dispatch 0.9.5 で Github API をつかい github の starred の情報取得
この前は dispatch 0.8.6 を使って Github API をつかってみましたが、新しい dispatch のバージョンの 0.9.5 を使って同じことをやってみました。
0.9.5 では OAuth のモジュールが core モジュールに含まれています。
したがって import は
import dispatch._ import dispatch.oauth._
の2行です。
サイトにアクセスして情報を取得する為の記載は 少し異なります。
0.8.6 の時
val contents = http(u.secure <:< authtoken as_str)
0.9.5 では
val contents = http(u.secure <:< authtoken OK as.String)
as_str と記載していた箇所が OK as.String になっています。OKだったら Stringとして処理という意味になるでしょうか。
大きく 違うのは この処理の結果です。
上の一行を実行した時点では
contents: dispatch.Promise[String] = Promise(-incomplete-)
という 結果が返ってきています。
処理は 非同期で行われている為 即座に結果は返ってきていなく
値を取得して 処理するには for
を使って処理を行います。
for( str <- contents ) println(str)
Source
build.sbt
scalaVersion := "2.9.2" libraryDependencies ++= Seq( "net.databinder.dispatch" %% "dispatch-core" % "0.9.5" )
github_starred.scala
import dispatch._ import dispatch.oauth._ val TOKEN = "xxxxxxxxxxxxxxxxxxxxxxxx" val TOKENKEY = "token " + TOKEN val http = new Http val u = :/("api.github.com") / "user" / "starred" val authtoken = Map("Authorization" -> TOKENKEY) val contents = http(u.secure <:< authtoken OK as.String) for( str <- contents ) println(str)