資料保管庫作ってみた

いろんな経路から自分の気になった記事が自動保管される保管庫を作ってみました。
うわー。糞重い。
(追記)あまりに重いんでCronちゃんで定期的にキャッシュファイルを作り、そこから読み込ませるようにしました。

PHPで組んだら文字列処理が簡単すぎて、調子に乗ってGoogle ReaderやらPocketやらFeedlyやらEvernoteやらに分散したお気に入り記事を統合したら、えらいことになりましたよ。これでも1000件で区切って別ページ化したんですが、あまり小分けにしても目当ての資料が見つからなくなるだけなのでこのへんが限界ですかね。
仕組みとしては各ソーシャルサービスから気に入った記事を、IFTTTなどを使って一度Google Spreadsheetに集約し、そこからJSONで出力させてPHPで処理させているような形です。世の中便利になったもんだ。

忘れないうちに私的メモφ(`д´)メモメモ…

1)Web公開したスプレッドシートのリストをJSONで取得するためのURL:

https://spreadsheets.google.com/feeds/list/[ファイルID]/[シートのID(1枚目ならod6)]/public/values?alt=json

末尾が標準の「basic?alt=json」だと扱いづらくて仕方がないのでこっち。

2)PHPでのGoogle Spreadsheet JSONの処理例:

$url = "https://spreadsheets.google.com/feeds/list/[ファイルID]/[シートのID(1枚目ならod6)]/public/values?alt=json"; 
$json = file_get_contents($url,true);
$dataObj = json_decode($json);
foreach ($dataObj -> {'feed'} -> {'entry'} as $entry){
    echo $entry -> {'gsx$[リストの項目名(Spreadsheet各列の1行目のセルに書いた内容)]'} -> {'$t'};
}

これでforeach内を適当に変えれば好きなことができる。
(もし「basic?alt=json」で出してたら、ここからさらにexplodeとか使って文字列操作せにゃならんのでややこしい)。

3)リストの項目名で連想配列に一度入れてやればあとあと処理が楽:

$myArray = array();
$myArray['date'] = $entry -> {'gsx$date'} -> {'$t'};

こんな感じ。あとは文字を整形したりHTMLタグ入れたりお好きな様に。

次の課題としてはせっかく自動更新させてるんだから、週間単位でブログ記事として更新分を自動投稿させたいところです。
定期的な自動投稿となると、やっぱCronちゃん使わないと無理かなあ。

comments

コメントを残す

メールアドレスが公開されることはありません。