読者です 読者をやめる 読者になる 読者になる

算譜王におれはなる!!!!

偏りはあると思うけど情報技術全般についてマイペースに書くよ。

SlideShareのAPIラッパーをScalaで作ってるよー

Scala プログラミング

最近はScalaを勉強している。

コップ本を6割くらい読んだ。 個人的にコップ本は読みにくい。丁寧で網羅的な解説はありがたいんだけど。。

ちょっとしたコード書いて遊んでる。 スライドパズル解くプログラム作った。

あと、タイトルのとおり今はSlideShareのWeb APIをScalaで使いやすくするライブラリを作ってる。まだキーワードによる検索機能しかないけどどんどん追加していく予定。下手なコードがあったらツッコんでください! ちなみに既にJavaで書かれたライブラリがある。あるんだけどキーワード検索機能がない。

そのうちScalaとKotlinの比較記事書く。

追記[2013-09-08]

SlideShareのWeb APIについて

SlideShareのWeb APIは比較的扱いやすいと思う。でもリクエストの時にUNIX時刻とそのSHA-1ハッシュ値を渡さなければならないのはちょっと面倒かも。

それからスライドのキーワード検索とその他の検索のAPIでページングのパラメータが異なるのが気持ち悪い。キーワード検索の場合は

  • itemsPerPage
  • page

で、その他の検索の場合は

  • limit
  • offset

と微妙に違ってる。

SlideShare4Sはそんな差異を吸収してくれるし、UNIX時刻のハッシュとかもやってくれるから便利だよ!

SlideShare4S サンプルコード

val apiKey = "YOUR_API_KEY"
val sharedSecret = "YOUR_SHARED_SECRET"
val ss = SlideShare4S(apiKey, sharedSecret)

変数ssに代入されるオブジェクトを通してSlideShareAPIにアクセスできる。API KeyとShared Secretは各自SlideShareから取得する必要がある。

ユーザ名からスライドを検索する場合は次のとおり。

val username = "ngswtaro"
val paging = Paging(itemsPerPage=12, page=1)
ss.getSlideshowsByUser(username, paging) 

getSlideshowsByUserSeq[Slideshow]を返す。ページングのためのオブジェクトをPaging(itemsPerPage=12, page1)で作っている。

キーワードでスライドを検索する場合はこう。

val query = Query("scala")
val paging = Paging(12, 1)
ss.searchSlideshows(query, paging)

Query("scala")でキーワード"scala"でもって検索するクエリを作ってる。Queryには他のパラメータ(ソート順や言語など)も設定できるけどオプション扱い。