SlideShareのAPIラッパーを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
に代入されるオブジェクトを通してSlideShareのAPIにアクセスできる。API KeyとShared Secretは各自SlideShareから取得する必要がある。
ユーザ名からスライドを検索する場合は次のとおり。
val username = "ngswtaro" val paging = Paging(itemsPerPage=12, page=1) ss.getSlideshowsByUser(username, paging)
getSlideshowsByUser
はSeq[Slideshow]
を返す。ページングのためのオブジェクトをPaging(itemsPerPage=12, page1)
で作っている。
キーワードでスライドを検索する場合はこう。
val query = Query("scala") val paging = Paging(12, 1) ss.searchSlideshows(query, paging)
Query("scala")
でキーワード"scala"でもって検索するクエリを作ってる。Query
には他のパラメータ(ソート順や言語など)も設定できるけどオプション扱い。