sbt consoleでNHK番組表APIを試す
ポイント
- @seratchさんのnhk4sというライブラリを使います
- ライブラリはSBTにダウンロードしてもらいます
- 執筆者は受信料を払っています
手順
APIキー取得
NHK番組表APIのトップページ(http://api-portal.nhk.or.jp/)にアクセスします。
「アカウント作成」をクリックすると、トップページに戻ります。
アカウント作成確認メールが来るので、そこから本登録(パスワード設定)を行います。
必要事項を入力して登録を終えると、登録済みアプリの一覧に掲載されます。
プロジェクト作成
$ mkdir nhk4s-playground $ cd nhk4s-playground $ cat > build.sbt libraryDependencies += "com.github.seratch" % "nhk4s" %% "0.1.2"
ライブラリ追加
built.sbt
libraryDependencies += "com.github.seratch" %% "nhk4s" % "0.1.2"
お試し
広島の全番組を取得してみます。
scala> import nhk4s._ import nhk4s._ scala> val 放送中 = NHK.番組表.放送中(エリア.広島, サービス.テレビ全部) 放送中: Seq[nhk4s.programguide.v1.NowOnAirPrograms] = Stream(NowOnAirPrograms(Program(2014020710542,10542,2014-02-07T12:29:00.000+09:00,2014-02-07T13:00:00.000+09:00,Area(340,広島),Service(s3,NHKBSプレミアム,ServiceLogo(http://www.nhk.or.jp/common/img/media/bsp-100x50.png,100,50),ServiceLogo(http://www.nhk.or.jp/common/img/media/bsp-200x100.png,200,100),ServiceLogo(http://www.nhk.or.jp/common/img/media/bsp-200x200.png,200,200)),岩合光昭の世界ネコ歩き「エーゲ海の島々 ジャンプ!」,岩合光昭が愛くるしいネコの姿に迫る!エーゲ海の島、屋根から屋根へジャンプする躍動感!ふたごの赤ちゃんネコも!(2012年8月放送番組の30分版)語り・相武紗季,List(1001, 0802, 0801),None,List(),None),Program(2014020700607,607,2014-02-07T13:00:00.000+09:00,2014-02-07T14:38:00.000+09:00,Area(340,広島),Service(s3,NHKBSプレミアム,ServiceLogo(http://www.nhk.or.jp/common/img/media/bsp-100x50.png,100,50),ServiceLogo(http://www.nhk.or.jp/... scala>
コードの解説
「import 名前」でその名前のクラスやオブジェクトが見えるようになります。
「import 名前._」で、あるオブジェクトやパッケージ内のメンバ全てが見えるようになります。
そのため、以下のコードは「nhk4sパッケージ内のクラスやオブジェクトを見えるようにする」という意味になります。
import nhk4s._
「val 名前 = 式」で式の評価結果に名前をつけて「値」にします。
「名前.メンバの名前」はオブジェクトのメンバを表します。
オブジェクトやクラスや関数など色々なメンバがいますが、いずれにせよメンバにアクセスするときはこの文法を使います。
このコード例だと「NHK.番組表.放送中」はNHKオブジェクトのメンバの番組表オブジェクトのメンバの放送中という関数」を表しています。
「関数名(引数)」は関数呼び出しです。
これらを総合すると、以下のコードは「NHKのメンバの番組表のメンバの放送中という関数」の呼び出しです。
val 放送中 = NHK.番組表.放送中(エリア.広島, サービス.テレビ全部)