mixiのブログにPHPで投稿をするプログラムで
タイトルの件で教えて頂きたい事が出てきました。
以下のサイトで公開されてますプログラムを利用しまして
ttp://creazy.net/2008/07/post_a_mixi_dialy_from_php.html
少し省略していますが下記のように少し変更して使って見ました。
尚、テキストだけでも投稿可能となっていましたので
画像の部分は外しています。
試してみましたら$res_codeの所で「404」が返って来まして
失敗しているようで投稿できません。
いろいろと考えてやってみましたが良く分かりません。
ご存知の方がいらっしゃいましたらご教授のほどお願いいたします。
環境は以下の通りです。
・OS:Windows XP/Apache2.0
・PHP 5.2
以下が試したプログラムの抜粋です
------------------------------------------------------------
// mixi USER infomation
$user = 'mixiのログインID'; // << 実際は登録データを設定済みです
$pass = 'mixiのパスワード'; //
$id = 'mixiのユーザーID'; //
// WSSE Authentication
// Windowwsでは、posix_getpidは使えないので uniqidに変更
//$nonce = pack('H*', sha1(md5(time().rand().posix_getpid())));
$nonce = pack('H*', sha1(md5(time().rand().uniqid(""))));
$created = date('Y-m-d\TH:i:s\Z');
$digest = base64_encode(pack('H*', sha1($nonce . $created . $pass)));
$wsse_text = 'UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"';
$wsse_header = sprintf($wsse_text, $user, $digest, base64_encode($nonce), $created);
// mixi POST URL
$url = 'http://mixi.jp/atom/diary/member_id=' . $id;
//------------------------------------------------------------
// Post Text
//------------------------------------------------------------
$post_data
= "<?xml version='1.0' encoding='utf-8'?>"
. "<entry xmlns='http://www.w3.org/2007/app'>"
. "<title>テストタイトル</title>"
. "<summary>テスト・テスト・テスト</summary>"
. "</entry>";
$request = new HTTP_Request($url);
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$request->addHeader('X-WSSE', $wsse_header);
$request->setBody($post_data);
if (PEAR::isError($request->sendRequest())) {
die('request failed');
}
$res_code = $request->getResponseCode();
echo "$res_code\n"; // 404が返ってくる
------------------------------------------------------------
補足
それはコミュニティページのURLですね。 コミュニティページは既に取得できているんですよ。 ですが、メンバーの参加コミュニティページは コミュニティページと同じ方法ではHTMLを取得できないということです。