なんだこれは

はてなダイアリーから移転しました。

hatena-modeというよりcurl?

未だにhatena-modeで悪戦苦闘中。おかしい。なにか、おかしなことをしてしまったのか?それはそうだよね、以前はできたのだから。えーっとなにしたんだろ、落ち着け、落ち着け、とりあえず、タイムマシンを探すんだ!

ひきがえるさん、すみません。fu7mu4はこういうヤツなんです。

環境 bash/MacOS X (10.4.2)現在の最新
curl 7.13.1
OpenSSL 0.9.7g

よし、curlの確認だ。

hatena-login関数@hatena-mode.el(0.9.5)にはこう

(defun hatena-login ()
  (interactive)
  (message (concat "logging in to \"" hatena-url "\" as \"" hatena-usrid "\""))
  (let ((password (hatena-ask-password)))
    (call-process hatena-curl-command nil nil nil
                  "-k"  "-c" hatena-cookie
                  "-x" hatena-proxy
                  "-d" (concat "key=" hatena-usrid)
                  "-d" (concat "password=" password)
                  "-d" (concat "autologin=1")
                  "-d" (concat "backurl=http%3A%2F%2d.hatena.ne.jp%2F")
                  "-d" (concat "mode=login")
                  "https://www.hatena.ne.jp/sslregister"))
    (message "Say HAPPY! to Hatena::Diary")

かかれているから、個人的には"backurl=http%3A%2F%2Fd.hatena.ne.jp%2F"だと思うが...引用だからそのまま書いた。以下のテストでは訂正してみたが結果は同じ。

shellで(MacでいうとTerminal.appで)
hatena-usridを僕の場合fu7mu4で、hatena-proxyをhogehoge.foo.bar.jp:ポート番号で置き換えた、下のコマンドで、cookieという名前ファイルにcookieが手に入るはずなんですよね?(実際には一行です。)

curl -k -c cookie -x hogehoge.foo.bar.jp:ポート番号 -d "key=fu7mu4" 
-d "password=********" -d "autologin=1" 
-d "backurl=http%3A%2F%2d.hatena.ne.jp%2F" -d "mode=login" https://www.hatena.ne.jp/sslregister

確かにプロキシ以外はひきがえるの日記にかかれたものと同じになりました。

cookieファイルは作成されずに、こんな内容がダウンロードされるのです。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.hatena.ne.jp/register">here</a>.</p>
<hr />
<address>Apache/2.0.40 Server at www.hatena.ne.jp Port 443</address>
</body></html>

確かにFirefoxでsslregisterに行くとregisterに飛ばされる。

それで、sslregisterをregisterにしたら、エラー?がダウンロードされなくなったけれど、cookieファイルが見当たらない。findで探しても見当たらない。どうなっているのだろう?
その他試したこと、backurlを直したり戻したり、"を外したりつけたり、cookie絶対パスで./cookie.txtにしてみたりしたんだけど、全然だめ。

でも、認証なしのgooglecookieは手に入るのよ。基本は合ってるはず。で、他にもcurlの-uオプションを試したけれど、お手上げ。