SSL!
先に短い追記
今は下記APIにはhttps://api.b.st-hatena.com
を共通で使うようになってる.AOSSL.下記のURLを使用している場合はリダイレクトされる.ただし,同対応と同時にentry.countは非推奨となっており,新エンドポイントへの移行が必要.
国内ではおなじみの…随一のソーシャルブックマーク、はてブ。
Webサイト内にはてブボタンを設置したりブックマーク数を表示するとき、もちろん公式のボタンを使うこともあるけどAPIを叩いて数字だけ取り出して独自のボタン等に表示することも多いと思う。
そんなはてブAPIのカウントのエンドポイントといえば…
1 |
http://api.b.st-hatena.com/entry.count |
これにcallbackとURLをつけてやればJSONPのように扱えるわけだが、このURLはSSLでは使えない。
はてなブックマークの数取得をhttpsでも出来るようにする
この記事でははてブAPIをYahoo YQL経由で呼び出しているが、実はその必要はない。
はてブAPIは実は少なくとも2013年6月には既にSSLに対応していたみたい。
はてなブックマークボタンで日本語のラベルが選べるようになり、SSL接続のページにも対応しました – はてなブックマーク開発ブログ
はてブボタン取得ページ…
はてなブックマークボタンの作成・設置について – はてなブックマーク
ではなく、そこから取得できるボタンのスクリプトにヒント…というか答えがある。
https://b.st-hatena.com/js/bookmark_button.js
親切にもコメント入りw
このJSの冒頭部分…
1 2 3 4 5 6 7 |
if (location.protocol === 'https:') { B.apiOrigin = 'https://b.hatena.ne.jp'; } else { B.apiOrigin = 'http://cdn.api.b.hatena.ne.jp'; } B.origin = location.protocol + '//b.hatena.ne.jp'; B.staticOrigin = location.protocol + '//b.st-hatena.com'; |
SSL対応エンドポイントのベースURLはhttps://b.hatena.ne.jp
であることがわかる。
試しに例のエンドポイントを叩いてみる。
1 2 |
$ curl https://b.hatena.ne.jp/entry.count?url=http://www3.nhk.or.jp/news/html/20150814/k10010190231000.html&callback=cb cb(94); |
ちゃんと返ってくるね。
(ちなみに上記のはてブコンテンツは以下のNHKニュースより)
コミケでTPP著作権問題を考える NHKニュース
従来のはてブAPIを呼び出しているコードにこれらを適用するコードを導入することによりSSLサイトでもはてブカウントが表示できる。以上。