プロが教える店舗&オフィスのセキュリティ対策術

タイトルの件で教えて頂きたい事が出てきました。

以下のサイトで公開されてますプログラムを利用しまして
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が返ってくる

------------------------------------------------------------

A 回答 (1件)

参考にしている情報が2008年と非常に古いものです。


APIが新しくなっているので、それに合わせてPHPを作成する必要があります。
詳しくはmixiを見て下さい。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

実は他のものもいろいろと調査してみたのですが
私のレベルの低さもあり、mixiのAPIにつきましては
MixiAPI.phpなどを含んだライブラリーなども検討しましたが
なかなか把握できなく他の方が作成されたサンプルなどを
頼って試したりしている状況です。

今回の方法は使い物にならないようですので
何か分かりやすいサンプルなどがありましたら
ご紹介頂ければと思います。

お礼日時:2013/04/10 08:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!