トップ 最新

ただのにっき

2013-01-08(火) [長年日記]

WappwolfとIFTTTを使ってKindle Personal Documentを復活させた(暫定)

Personal Documentにメールできない問題はいまだ絶賛継続中。Amazonのサポートもおれが1週間に1回かならずpingを打ってくることを学習したらしく、仕事始めの1月4日に向こうから「続報なし」のメールを送ってきた。いや、そんな情報量ゼロの話を知らせてもらえてもね……。メールがどこで詰まっているのか見つけるのになんでこんなに時間がかかるのか、不思議でしょうがない。

……と、待っていても不便でしょうがないので、(Amazonのサポートには引き続きがんばってもらいつつ)なんとか回避策をうつことにした。

なにしろHerokuのsendgridプラグインを使った場合のみ失敗するので、まずは自動的にPersonal Documentにメールできるルートを開拓しなくてはならない。ここにはWappwolfを使った。Wappwolfは以前「Dropbox Automater」と呼ばれていたサービスで(今はGoogle Driveやboxも使える)、Dropboxにファイルを作ることをトリガーにしていろいろやってくれる。ここで、特定のフォルダにファイルを入れたらそれをメールでKindle Personal Documentに送るというタスクを作ってやる。不思議なことにWappwolfを使うと、あきらかにFromを詐称しているにもかかわらずちゃんとメールでもPersonal Documentにファイルが届く。謎だ。DKIMなどの認証がネックだと思っていたけど、そうでもないらしい。

さて、これで次の課題は「生成したmobiファイルをDropboxにコピーする」というルートを作る点になった。これにはIFTTTを使う。IFTTTもWappwolfと類似だがより汎用的なサービスで、とにかくWebサービスを連結していろいろやってくれる。ここでは「IFTTTにメールすると添付ファイルをDropboxの特定フォルダにコピーする」というタスクを作る。これで、IFTTTへmobiファイルをメールすればよくなった。

で、最後はKindlizer-backendのメール送信先を、kindle.comのアドレスからIFTTTのトリガー用アドレスに変更する。これで無事、HerokuからKindleへの迂回ルートが開拓できたことになる。バンザイ*1

ややこしくなったけど、本来こうだったものが:

Heroku →(メール)→ Personal Document

こうなった:

Heroku →(メール)→ IFTTT →(Dropbox)→ Wappwolf →(メール)→ Personal Document

うぇー。

実際はIFTTTだけでできるという話もあるんだけど、IFTTTはパーミッションが大雑把すぎて怖いので(Dropboxへの全面アクセス権を要求する)、できれば使いたくない*2。すでにKindlizer-backendにはメールだけでなくDropboxへも直接ファイルを送れるような改造を入れてあるので、以下のような運用にできるはず:

Heroku →(Dropbox)→ Wappwolf →(メール)→ Personal Document

とはいえ、Amazonのサポートとのお付き合いは今後も続けるので(←物好きな!)、毎朝メールを直接送るルートも残しておかないといけないので、もうちょっと手を入れないと。

Tags: kindle amazon

*1 実際はKindlizer-backendが生成するメールをちゃんと読んでくれなかったので改造も少々入れた。

*2 Wappwolfは特定フォルダ配下のみ見せるようにできるので安心。