ブログ記事のfacebookのいいね!の数を集計して、ランキングを付けて表示してみました。意外と苦戦したので、今後のためにメモしておきたいと思います。
まず、皆さんに書いていただいた全ての記事のいいね!の数をそれぞれ調べました。
①いいね!を保管するためのテーブルをデータベースに作る。
②各ブログのsitemapをsimplexml_load_fileで読み込み、foreachでまわす。
③ループの中でcURLでfacebookのapiにアクセス。
④いいね!があったらデータベースに保管
cURLを使ったことで、file_get_contentsより7秒処理速かったです。これでよかブロ全てのいいね!があった記事のデータを保管することができました。
しかし、いいね!が付くのはこれから先もあります。常に最新のいいね!の数とその記事の情報を絶えず取得し続けないといけません。そこで、
①記事にアクセスがある度に、そのページのいいね!の数をfacebookのapiに尋ねる
②いいね!がなかったら処理終了
③いいね!があったら、そのURLは既に登録されているか調べる
④登録されていなければデータベースに保管
⑤登録されていればデータベースの情報を最新のものに更新
最後に、それらの情報を表示します。ウィジェット化することで表示数や場所を自由に選択出来るようにしました。
「とりあえず動きます」程度です。もう少し建設的にフローチャートを書いたりしながらスクリプトを組まないと、今のままだと処理の負荷が酷いかもしれません それでも何とか動いてくれたのは先人の知恵のおかげです。この場を借りてお礼申し上げます。
PHPメモ : file_get_contentsの代替にcURLを使う
WordPress のウィジェットを自作してみる(ただし 2.8以降用)