monoの開発ブログ

はてなスターで引用機能が使えない

このブログではてなスターの引用機能が使えないようです。皆さんも↑で一度試してみてください (スター乞食)。できたりできなかったりするようですが、できないことのほうが多いように感じます。

修正しよう思い調べてみたところ、JSONPでスターを追加する段階 (http://s.hatena.ne.jp/star.add.json) ではquery stringのquoteに選択した文字列が含まれており、正しくリクエストが送信されていると考えられるにもかかわらず、このリクエストに対するレスポンスのJSONではquoteが空になっています。サーバ側で引用が拒否されている可能性がありそうです。

さらに調べてみると、どうやらはてなスターでは不正な引用を弾くためにチェック用のbotが動いているらしく、ページ内に引用しようとした文字列が存在していない場合には拒否していると考えられています。しかし、こいつの詳細な仕様がどこにも公開されていない上に、いまいちうまく動かない場合もあるようです。

なんとかしたいのですが、外からどうにかできる感じがしないのでお手上げ状態です。はてなスターに詳しい方のコメントをお待ちしています。

追記

こちらの記事によると、RFC2616に従うとうちのページはUTF-8と認識されない状態だったようです (metaタグで指定しているので、うちのページがまずいわけではありません)。ということで、nginxの設定に以下の1行を加え、Content-Typeヘッダにcharset=utf-8を付けたところ、引用できるようになりました!

charset utf-8;

wakabatanさん、noromanbaさん、ありがとうございました。