2007-07-02
■[PHP]mixiのあしあとAPIを使って「あしあと一覧」を作ってみた
via. You are not authorized to view this page、mixiのあしあとAPI発掘 « ku
mixiも裏で色々と用意しているみたいですね。
「あしあと」がatom+WSSE認証で配信されているようなので、試してみました。WSSE認証については以下を参照ということで。
- Web Services Security UsernameToken Profile 1.0(pdf)
- はてなブックマークAtomAPIだのWSSEだの
- はてなフォトライフatomapiとは - はてなキーワード
以下サンプルですが、X-WSSEリクエストヘッダの内容を作っている部分は、PEAR::Services_HatenaとServices_Hatena - PHPの挑戦 (ハズレ日記)を参考にさせてもらいました。
つーか、ほとんどそのままですね ;-)
<?php error_reporting(E_ALL); require_once 'HTTP/Request.php'; $user = '[mixiのログインID]'; $pass = '[mixiのパスワード]'; $id = '[mixiのユーザーID]'; $url = 'http://mixi.jp/atom/tracks/r=2/member_id=' . $id; $nonce = pack('H*', sha1(md5(time().rand().posix_getpid()))); $created = date('Y-m-d\TH:i:s\Z'); $digest = base64_encode(pack('H*', sha1($nonce . $created . $pass))); $wsse_header = sprintf('UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"', $user, $digest, base64_encode($nonce), $created); $request = new HTTP_Request($url); $request->addHeader('X-WSSE', $wsse_header); if (PEAR::isError($request->sendRequest())) { die('request failed'); } $xml = new SimpleXMLElement($request->getResponseBody()); echo '<ul>'; foreach ($xml->entry as $entry) { $updated_iso8601 = $entry->updated; $updated = date('Y/m/d H:i:s', mktime(substr($updated_iso8601, 11, 2), substr($updated_iso8601, 14, 2), substr($updated_iso8601, 17, 2), substr($updated_iso8601, 5, 2), substr($updated_iso8601, 8, 2), substr($updated_iso8601, 0, 4) )); printf( '<li><a href="%s" title="%sさん">%s</a>さん (%s)</li>', $entry->link->href, htmlspecialchars($entry->author->name, ENT_QUOTES, 'utf-8'), htmlspecialchars($entry->author->name, ENT_QUOTES, 'utf-8'), $updated ); } echo '</ul>';
mixiも色々APIが出てくると面白そうなんだけどなぁ。。。
追記(2007/07/04 18:31)
PHP5の場合、digest作成のところは以下のようにも書けます。
<?php : $digest = base64_encode(sha1($nonce . $created . $pass, true));
トラックバック - http://d.hatena.ne.jp/shimooka/20070702/1183374400
リンク元
- 365 http://creazy.net/2008/07/post_a_mixi_dialy_from_php.html
- 363 http://www.google.co.jp/search?q=Vimperator+コピー&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 154 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=ZDE&q=Vimperator&btnG=検索&lr=
- 150 http://usingapi.com/archives/170
- 104 http://reader.livedoor.com/reader/
- 90 http://www.google.co.jp/search?hl=ja&q=vimperator+コピー&btnG=Google+検索&lr=
- 84 http://ido.nu/kuma/2007/06/29/mixiのあしあとapi発掘/
- 76 http://search.yahoo.co.jp/search?p=mixi+????????????&tid=top_v2&ei=UTF-8&search_x=1&pstart=1&fr=top_v2&b=11
- 69 http://www.machu.jp/diary/20070723.html
- 57 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=Mtg&pwst=1&q=WSSE認証+PHP&suggest=0&sa=X&oi=cjkrefinements&resnum=1&ct=result&cd=1







