ScalaでGoogle翻訳APIを叩く

ScalaでWebAPIを使ってみようシリーズ第二弾。

今回は遊び心あふれることで定評のあるGoogle翻訳APIです。

import scala.io.Source
import scala.util.parsing.json.JSON

val url = "https://www.googleapis.com/language/translate/v2?key=自分用のキー"
val q = "&q=" + java.net.URLEncoder.encode("こんにちは", "utf-8");
val eToJ = "&source=ja&target=en"
val api = url + q + eToJ
val source = Source.fromURL(api, "utf-8")

val str = source.getLines.mkString

val some = JSON.parseFull(str)

// Any型で返ってくるので、キャスト
val result = some.get.asInstanceOf[Map[String, Map[String, List[Map[String, String]]]]]

result("data")("translations")(0)("translatedText")
source.close

解説

仕様は以下に書いてあります。

Developer's Guide (v2): Using REST - Google Translate API - Google Code

GoogleAPIはGoogleのアカウントを取得して(Gmailなどでも可)申請を出すことでりようできるようになります。

その際、自分用のキーをもらえますので、上記のソースコードに置き換えてください。

うーん、いちいちキーもらったりするのは面倒ですね。もっとお手軽なAPI探してみます。