はてなダイアリー自動転記スクリプト開発(11) はてなのログインがSSLになってしまった

fslasht2004-11-24

STATUS: 故障中

 slashdotの日記をはてなダイアリーに転記するためにスクリプト (説明)を作って使っていますが、今週始めからはてなへの転記が出来なくなってしまいました。
 はてなダイアリーに書き込むためにスクリプトでは、はてな側のユーザー名・パスワードを使って自動的にログイン処理を行っているのですが、最近はてなのログインページがSSL対応になった影響で、この処理が正常に動かなくなってしまったのが原因です。

 詳細な動作としては、毎回はてなにログイン処理をしているわけではなく、スクリプトのページ中で、アカウント情報を入力した際に自動ログインを行い、その際に設定されるセッションID(cookieのrk値に格納されてわたらせる)を保存しています(転記スクリプトのcokkieとして)。
 転記事は、このセッションIDをもとに日記の書き込みを行っています。
 セッションIDは、ログアウト処理をしない限り有効なので、しばらくは使えますがログアウトしてしまうと二度と転記できません。(その他なにかの拍子にセッションIDが無効になるようです)

 とりあえず僕は、Cookieの値をみてセッションキーを値をスクリプトに埋め込んでなんとか使っていますが、早めに改良しないといけないですね。
 PHPのfopen関数でHTTPSのストリームって開けましたっか?

● とりあえずの対処方法

1.普通にブラウザで、はてなにログインします。
2.ブラウザのcookieファイルを見ます。

IEだとこんな感じ
C:\WINNT\Profiles\\Cookies\@hatena.ne[1].txt あたりとか
C:\Documents and Settings\\Cookies\@hatena.ne[1].txt あたりとか

3.パラメータ「rk」の値を調べます。(16進数30桁)
 IEの場合は、cookieのファイルの2行目です。
 「78de5f8a45d86e1235484869761354」みたいな感じの文字列

4.スクリプト(nisejournal.php)の以下の行を変更します。

【修正前】
$cookieHNUser = $_COOKIE['HNUser'];
$cookieHNRK = $_COOKIE['HNRK'];



【修正後(例)】
$cookieHNUser = "fslasht";
$cookieHNRK = "78de5f8a45d86e1235484869761354";

 再ログインしたりしてセッションキーの値が変わった場合は、スクリプトも変更しなおしてください。

コメント