mixiの最新日記をRSSで読んでみる


  • mixiのAPIってなかなか公開されないですね。
    待ってられないので、非公開API+mixiPHPで作ってみました。

    ■mixxxxxirss!

    使い方は簡単で、上記URLにアクセスして、
    メールアドレス、パスワード、ミクシィIDを入力するだけです。

    「フィードURL発行」をクリックすると、専用のURLが発行されるので
    それをRSSリーダに登録すればOK!

    これらの個人情報はサーバ側に全く保存せず、URLに暗号化して
    埋め込んでいるので、安心して使ってください(笑)

    Special Thanks!

    ■mixiステーション2.2.1で追加されたAPIの発掘
     http://ido.nu/kuma/2007/08/01/two-more-api-found-in-mixi-station-221/

    ■mixiPHP
     http://trac.riaf.org/phpmixi/
     (注) mixiのデザインが変わっているので、このままだと動きませんでした。
    とりあえず、以下の修正をすれば日記の取得だけはできます。
    時刻のフォーマットはオリジナルから変更してます。
    ・345?346行目
            $pattern = ‘/<div class="listDiaryTitle">.*?<dt>(.*?)\n.*?<dd>(\d{4})年(\d{2})月(\d{2})日(\d{1,2}):(\d{2})<\/dd>’;
            $pattern .= ‘.*?<div id="diary_body">(.*?)<\/div>(.*?)$/is’;
     
    ・355?356行目
            $item[’subject’] = $match[1];
            $item[’date’] = sprintf("%04d/%02d/%02d %02d:%02d", $match[2], $match[3], $match[4], $match[5], $match[6]);
            $item[’content’] = $match[7];

    ・358?365行目
            preg_match_all(’/<span class="commentTitleName"><a href="(.*?)">(.*?)<\/a>.*?<span class="commentTitleDate">(\d{4})年(\d{2})月(\d{2})日&nbsp;(\d{1,2}):(\d{2})<\/span>.*?<dd>\n(.+?)<\/dd>/is’, $match[8], $comment, PREG_SET_ORDER);
            foreach($comment as $res) {
                $item[’comment’][] = array(
                    ‘date’ => sprintf("%04d/%02d/%02d %02d:%02d", $res[3], $res[4], $res[5], $res[6], $res[7]),
                    ‘poster’ => $res[1],
                    ‘name’ => $res[2],
                    ‘content’ => $res[8]
                    );
            }

    Posted on

  • Leave a reply