h.hatena.com は生きていた
とっくに引導を渡されたと思っていた h.hatena.com 。実は、まだ生きていた。
http://h.hatena.com/api/statuses/public_timeline.json?count=30
投稿などの URL だと 301 でトップの「終了しました」に飛ばされちゃうけど、
はてなハイクタイムラインAPI をドメインを .hatena.com で使うと、サーバが生きてるだけじゃなくて、投稿もされていることが分かる。
iPhone の非公式アプリ HaikuNeko や、Google Chrome の「どこでもはてなスター」拡張から投稿できているみたい。
☆だけではなく、メモを書き残すこともできる (メモははてなハイクに投稿される)。
どこでもはてなスター (Chrome)とは - はてなキーワード
GitHub にある、「どこでもはてなスター」拡張のソース。
https://github.com/wakaba/chrome-hatena-star-everywhere/blob/master/entry-script.js#L446
function postHaikuEntry (args, nextCode) { var self = this; bg.getRKM (function (rkm) { var xhr = new XMLHttpRequest (); var postURL = 'http://' + bg.config.getDomain ('h') + '/api/statuses/update.json'; xhr.open ('POST', postURL, true);
記事を POST する URL は、bg.config.getDomain() を介して決められている。
getDomain メソッドは、Google Chrome のロケールを見て、h.hatena.ne.jp か h.hatena.com を切り替えている。
https://github.com/wakaba/chrome-hatena-star-everywhere/blob/master/user-config.js#L25
getDomain: function (subdomain) { if (this.get ('tld') == 'jp') { return subdomain + '.hatena.ne.jp'; } else { return subdomain + '.hatena.com'; } }, // getDomain
https://github.com/wakaba/chrome-hatena-star-everywhere/blob/master/user-config.js#L5
UserConfig.prototype = { defaultValues: { allowedURLs: '^https://[^/]+\\.hatena\\.(?:ne\\.jp|com)/', disallowedURLs: '^https://\n^http://[^/.]+/', tld: /^ja(?:_|$)/.test (chrome.i18n.getMessage ('@@ui_locale')) ? 'jp' : 'com', iconType: 'default', nameType: 'nickname', useIconStar: false, }, // defaultValues
投稿してみるべ。
(function() { var xhr = new XMLHttpRequest(); var postURL = 'http://h.hatena.com/api/statuses/update.json'; xhr.open ('POST', postURL, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status < 400) { alert('OK'); console.log(JSON.parse(xhr.responseText)); } } }; xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); var data = 'keyword=' + encodeURIComponent('はてなハイク') + '&status=' + encodeURIComponent('h.hatena.com は、まだ生きている!?') + '&source=' + encodeURIComponent('a-kuma3 test') + '&rkm=' + encodeURIComponent(...); // rkm は、h.hatena.ne.jp のページから引っこ抜く xhr.send(data); })();
クロスオリジンの制約があるので、h.hatena.com のページで Bookmarklet として実行。
ログイン状態を表している rkm は、h.hatena.ne.jp のページから引っこ抜いて書いておく。
BASIC 認証があるので、ユーザID と API キーをパスワードとして入力。
はてなハイクAPI で確認。
http://h.hatena.com/api/statuses/public_timeline.json?count=30
h.hatena.ne.jp で投稿を確認。
http://h.hatena.ne.jp/a-kuma3/81808088407040107
でも、h.hatena.com への投稿だから、h.hatena.ne.jp のキーワードページには表示されないの。
http://h.hatena.ne.jp/target?word=%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%8F%E3%82%A4%E3%82%AF