mixiの足跡atomフィードを取得してみる
WSSE使ってるとのことで、はてなの記事やCPAN眺めながら作ってみた。
エラー処理とかしたほうがいいと思うよ。
<?php
require_once 'HTTP/Request.php';
class MyRequest extends HTTP_Request
{
function setWsseAuth($user, $pass)
{
$now = date(DATE_ATOM, $_SERVER['REQUEST_TIME']);
$nonce = sha1(md5($_SERVER['REQUEST_TIME']));
$nonce_enc = base64_encode($nonce);
$pass_digest = base64_encode(pack('H*', sha1($nonce . $now . $pass)));
$auth_wsse = sprintf('UsernameToken Username="%s", PasswordDigest="%s", Created="%s", Nonce="%s"',
$user,
$pass_digest,
$now,
$nonce_enc);
$this->addHeader('Authorization', 'WSSE profile="UsernameToken"');
$this->addHeader('X-WSSE', $auth_wsse);
}
}
$id = 'id';
$mail = 'mail';
$pass = 'pass';
$request = new MyRequest("http://mixi.jp/atom/tracks/r=2/member_id={$id}");
$request->setWsseAuth($mail, $pass);
if ($request->sendRequest() && $request->getResponseCode() == 200) {
header('Content-type: ' . $request->getResponseHeader('content-type'));
print $request->getResponseBody();
}
?>
カテゴリー: 日記