メニュー 閉じる

日: 2009年1月3日

アメブロ連携断念

既存ブログとアメブロと違うネタを書いてる余裕が無いので、自動で連携して両方に同じ記事を書こうと試行錯誤してたんだけど…WSSE認証で完全にハマったのでめんどいから断念。

 

というわけで、気が向いたらコピペでアメブロにも投稿することにして、基本は現状維持。
HP本体を作らないとね…。

明日から仕事始めだし、いろいろ考えなくちゃ。

というわけで、アメブロ連携は諦めて今日は一旦寝ます(笑)

Ameba試行錯誤(失敗)

うーん、アメブロにPerlから投稿したいけど、WSSE認証が通らない。。
たぶんPasswordDigestの生成が違っているのだと思うけど…
とりあえず、はてなフォトライフAtomAPIのサンプルコードをベースにして、
下記のようにパスワードをmd5したあとで連結するようにAmeba向け改造をしてみたけど駄目でした。

my $nonce = sha1(sha1(time() . {} . rand() . $$));
my $now = DateTime->now->iso8601 . ‘Z’;
my $digest = encode_base64(sha1($nonce . $now . md5($ameba_passwd) || ”), ”);
my $credentials =
    sprintf(qq(UsernameToken Username="%s",PasswordDigest="%s",Nonce="%s",Created="%s"),
            $ameba_id, $digest,  encode_base64($nonce, ”), $now);

my $req = HTTP::Request->new(GET => $atomURI);
$req->header( Accept => ‘application/x.atom+xml, application/xml, text/xml, */*’);
$req->header( ‘X-WSSE’ => $credentials );

print "REQUEST: ".$req->as_string;
print "RESPONSE: ".LWP::UserAgent->new->request($req)->as_string;

という感じでやってみたのだけど、駄目。
レスポンスは下記のよーなもの。

HTTP/1.1 401 Unauthorized
Connection: close
Date: Sat, 03 Jan 2009 15:06:49 GMT
Server: Apache
Content-Length: 83
Content-Type: application/x.atom+xml
Client-Date: Sat, 03 Jan 2009 15:06:49 GMT
Client-Peer: xxx.xxx.xxx.xxx:80
Client-Response-Num: 1
Client-Warning: Missing Authenticate header
Set-Cookie: BIGipServerPool_comment=xxxxxxxxxx.xxxxx.xxxx; expires=Sun, 04-Jan-2009 15:06:49 GMT; path=/

<?xml version="1.0" encoding="UTF-8">
<error>X-WSSE authentication required</error>

こんな感じで冷徹に弾かれました(^^;
あちこち調べたけど他にサンプルコードも無いのでちょっと諦めかけ。。

nonceはなんでもいいはずだし、日付はDateTimeから貰っているから間違ってるとするとDigestの生成部分か、パスワードそのもの?
パスワードは何度も確認したので、やはりコードが違うのでしょうね。

どなたか成功した方いませんかね(苦笑)
とかいって、こんな他力本願では駄目ですねorz

#そもそもアメブロ使うなって話かもしれませんが…(^^;

Ameba同時投稿の壁

とりあえずAmebaアカウント取得したので、既存blogとAmebaの同時投稿を実現しようとごにょごにょしてたんだけど、うまくいきませんでしたorz

とりあえず、前の日記に書いたXML-RPCはやっぱり間違いで、AtomPubでWSSE認証かつAmeba独自仕様(…というかバグじゃね?)が必要というところまで判明。

つーことでXML::Atom::Clientとかめっさ頑張って本番機に入れたけど無意味でしたorz
既存のWSSEをやってくれるライブラリとかが全く役に立たないので自分で実装しないといけないし、画像とか埋め込んだ日には、何段階もの手順を踏まないと投稿できない。。

Windows Live Writerからの直接投稿も、WSSE認証が通らないので当然ながら「403 Forbidden」で駄目。
時間無いからmixi日記の本文投稿の実装も断念してるのに、こんなん無理っしょ。。
BlogPetとかは独自実装してるのかな…

やりたくねーorz