■ Kindlizer Backendを使ってニュースをKindleに配信
先日諸事情の人(なんのこっちゃ)が突然「最近、ネットのニュースは SmartNews からしか読んでないから意見が偏ってこのままだとネットイナゴになるから 日経電子版 とか他のやつも読もうと思うんだけどSmartNewsと同じような感じで快適に読めないかね」なんて言うから「日経のアプリ出てたはずだから使えばいいじゃん」って返したら「ウォール・ストリート・ジャーナル も読みたいから同じようなインターフェイスで読めると嬉しい」とかおっしゃいまして、特にオフラインで読めることを重視してらっしゃったようなので、そういえば ただのにっき で日経新聞のデータをKindleに送る仕組みを作ってたなと思ってそれを紹介してみたところ気に入って頂けたようなのでセットアップしてみました。
Kindle Paperwhite はもちろん、iPhoneのKindleアプリでも読めるのでなかなか快適です。
- 日経電子版をスクレイピングしてKindle向けmobiファイルを作る - ただのにっき(2011-01-04)
- Kindle向けニュース配信システムをHeroku上に移動した - ただのにっき(2012-03-04)
- Kindlizer-Backend
ちなみに Calibre っていうソフトウェアを使っても似たようなことができるみたいで、しかもCalibreはGUIのアプリケーションだから使い始めるのも簡単そうなんだけど、ウォール・ストリート・ジャーナルの有料版に対応してるのか良くわかんなかったのと、Kindlier Backendを使ったほうが面白そうじゃんって思ったので不採用としました。
Kindlizer Backendは導入方法も書いてあるので、herokuを使ったことがあればすぐ使えると思います(そこが重要だけどw)。一個だけわかんなくて困ったのは、メールを配信するためにはSendGrid Starterていうアドオンのセットアップみたいなプロセスが必要なことでした。herokuでKindlizer Backend用に作ったアプリの管理画面にSendGrid Starterっていうのが出来てるので、それをクリックするとアカウントの情報が出てきて、なにやら承認的なボタンを押してくれよって感じになっていて、そこを進めないと使うことはできませんでした。どんな画面だったのかは忘れましたけど、とにかくそういうのがありました。
あと、nikkei-paidで有料版を読みたい場合、日経新聞のユーザ名やIDは環境変数で指定します。
$ heroku config:add NIKKEI_ID=[your id] NIKKEI_PW=[your pw]
メール以外にもDropboxにファイルも転送できるようで、Dropboxでアプリを追加して各種キー類をこれまた環境変数で指定すると使えるようになりました。
Dropboxのキーを取得するのはやることが色々あって、最初に App Console からPlatformを「Core」にしてアプリを作ります。App folderとFull Dropboxとありますけど、App folderを選択しました。Fullだとフルアクセスできるんで怖いよね…。ただし、App folderにすると lib/kindlizer/backend/task.rb のDropboxClientのインスタンスを作る部分のコードをいじる必要があります。
client = DropboxClient.new(session, :dropbox) ↓ client = DropboxClient.new(session, :app_folder)
アプリを作ったら、リクエスト用のトークンを取得します。以下のページのコードを使うと、リクエストトークンとアクセストークンと一通りの必要な情報を修得できます。
そんな感じでした。
Kindlizer Backendを使ってる人ってどのくらいいるんですかね。これなかなか便利です。ウォール・ストリート・ジャーナル有料版もだいたいできて微調整してるところなので、もうちょっと様子を見たらフォークしてプルリクエストしようと思います。→ しました
スクレイピングするのは問題ないのか規約もチェックしてるんですけど、禁止されてる感じではないという印象かなあ…。このいうのは解釈が難しいですね。
(iii) 私的利用の目的で本サービスの記事をダウンロード、保存及びアーカイブすることができます。会員は、私的利用の範囲内で数名の個人にアーカイブへのアクセ スを許すことは構いません。
Posted by Kyosuke Takayama at 2013-07-01 (Mon) 00:12 printable version