共通テーマ:
ライブドアブログのカスタマイズ テーマに参加中!

ブログの新管理画面で何か操作をするごとに「rkey.invalid」というアラートが出て何もできなくなることがあるので、大雑把に調べてみたのですが、結局原因はよく分かりませんでした。。

とりあえず分かったとこだけメモ。

rkey

ページのソースを見るとJavaScriptで

var rkey = '[半角英数字の文字列]';

という行が頭の方あります。

この値はcookieでドメイン「livedoor.blogcms.jp」の変数「blogNG_sid」の値を元に、サーバ側で作成しているみたいです。

投稿画面では上記JSの変数の他、投稿記事formはPOSTで送るから、その中のinputタグにもhiddenでrkeyが埋め込まれています。

rkeyとblogNG_sidは別の値なのですが、1対1で対応しているようです。各操作を行う度にPOSTやGETメソッドでrkeyを送っていて、rkeyとblogNG_sidのマッチングをサーバ側でチェックしている感じです。この意図はセキュリティ・チェックでしょうか。

rkey.invalid

上記のチェックで整合が取れないとレスポンスで返ってくるJSONにこのエラー「rkey.invalid」が含まれ、それがアラートで表示されるみたいです。

エラーが出てしまうのは初めのうちは仕方がないとして、もう少し分かりやすいメッセージに変えてほしいですね^^;

blogNG_sid (cookie)

新管理画面のログオン時に作られ、値はログオンするごとに変わります。

ログオン状態でも、この変数が無かったり削除したりすると、新管理画面内のページの読み込み時に新たな値が発行されます。

エラーが出たときは、通常ではありえない何かしらの条件でblogNG_sidの値が書き換わり、rkeyとの整合が取れなくなってしまったのだと思うのですが、その条件が何なのかはさっぱり分かりませんでした。1日くらい投稿画面を放置していると出るような気もしますが。。
何かご存じの方は教えてください。

rkey.invalidが出たら

とりあえずページの再読み込みをすればいいみたいです。ページを移ってもいいかもしれませんが、ブラウザの「戻る」ボタンではダメです。

ページの読み込みで現在のblogNG_sidの値を元に新たなrkeyが発行され、各機能が利用可能になると思います。
確認はしていませんが、ブラウザによってはキャッシュを無視して再読み込み(CTRL + F5)する必要があるかもしれないです。

記事を書いている途中で再読み込みする際は、オートバックアップされているとはいえ、念のため記事の内容を別の場所にコピペしておいた方が安全です。

あとは、何度もクリックしたり、画面をそのままにして空いている時間帯を選んでもう一度試したりしても決しても復旧しないです。
せっかちな人ならこのエラーでつまづく人はまずいないと思いますが、根気の良い人は特に要注意ですね!

その他

何か新たなことが分かれば追記します。