はてなブックマーク開発ブログ

機能変更、お知らせなど

【開発者向け情報】はてなブックマークの開発者向けAPIをHTTPSに切り替え、一部エンドポイントを変更・廃止します

はてなブックマークは、先日 Webサイトの HTTPS への切り替え を実施しました。

はてなブックマーク開発チームは、サービスを直接利用するユーザーの皆様だけでなく、開発者向けの各APIを活用したアプリケーションを通じて利用するユーザーの皆様にも、より安全にご利用いただきたいと考えております。そのため、開発者向けAPIにつきましても、以下の要領で HTTPS に対応します。はてなブックマークの公開APIをご利用の皆様には、APIエンドポイントの切り替えをお願いいたします。

切り替え期日
2020年3月4日(水)
移行期間
本告知の公開から2020年3月4日までの約半年間とします。移行期間中は、HTTP とHTTPS の両方のエンドポイントをご利用いただけます。

移行期間中は、各APIをご利用いただいている開発者の皆様において以下の要領で動作検証をし、HTTPS のエンドポイント に APIリクエストの切り替えをお願いいたします。新しいエンドポイントはすでにご利用いただけるようになっています。

2020年3月4日(水)よりAPIリクエストを 新エンドポイントにリダイレクトするAPI

はてなブックマーク件数取得API

変更前

GET http://api.b.st-hatena.com/entry.count?url={encoded_url}
GET http://api.b.st-hatena.com/entry.counts?url={encoded_url}&url={encoded_url}

変更後

GET https://bookmark.hatenaapis.com/count/entry?url={encoded_url}
GET https://bookmark.hatenaapis.com/count/entries?url={encoded_url}&url={encoded_url}
はてなブックマークエントリー情報取得API

変更前

GET http://b.hatena.ne.jp/entry/json/?url={encoded_url}&callback=funcname
GET http://b.hatena.ne.jp/entry/jsonlite/?url={encoded_url}&callback=funcname

変更後

GET https://b.hatena.ne.jp/entry/json/?url={encoded_url}&callback=funcname
GET https://b.hatena.ne.jp/entry/jsonlite/?url={encoded_url}&callback=funcname
マイブックマーク全文検索API

変更前

GET http://b.hatena.ne.jp/my/search/json?q={query}&limit=10

変更後

GET https://b.hatena.ne.jp/my/search/json?q={query}&limit=10
はてなブックマークoEmbed API

変更前

GET http://b.hatena.ne.jp/api/oembed?url={encoded_url}&format=json

変更後

GET https://b.hatena.ne.jp/api/oembed?url={encoded_url}&format=json

【要注意】2020年3月4日(水)以降はHTTPS版のみ提供し、HTTP版からのリダイレクトを実施しないAPI

はてなブックマーク REST API

変更前

GET http://api.b.hatena.ne.jp/1/my/bookmark?url={encoded_url}
POST http://api.b.hatena.ne.jp/1/my/bookmark
DELETE http://api.b.hatena.ne.jp/1/my/bookmark?url={encoded_url}
GET http://api.b.hatena.ne.jp/1/entry?url={encoded_url}
GET http://api.b.hatena.ne.jp/1/my/tags
GET http://api.b.hatena.ne.jp/1/my

変更後

GET https://bookmark.hatenaapis.com/rest/1/my/bookmark?url={encoded_url}
POST https://bookmark.hatenaapis.com/rest/1/my/bookmark
DELETE https://bookmark.hatenaapis.com/rest/1/my/bookmark?url={encoded_url}
GET https://bookmark.hatenaapis.com/rest/1/entry?url={encoded_url}
GET https://bookmark.hatenaapis.com/rest/1/my/tags
GET https://bookmark.hatenaapis.com/rest/1/my
リダイレクトを実施しない技術的な背景

はてなブックマーク REST API は、認証・認可に OAuth 1.0a を利用しています。OAuth を利用した API では、クライアントで生成した署名をサーバーで検証することで、リクエストが真正であることの検証*1 をおこなっています。そのため、HTTP のエンドポイントへのリクエストを単に HTTPS にリダイレクトする対応では、OAuth 1.0a のリクエストの検証に失敗します。

よって、はてなブックマーク REST API については、他のAPIのようなリダイレクトによる移行はサポートしません。そのため 本 API を利用したアプリケーションが 2020年3月4日(水)以降も正常に動作し続けるためには、事前に必ず新しいAPIエンドポイントに切り替えていただく必要があります。

【要注意】2020年3月4日(水) に廃止するAPI

はてなブックマーク 件数取得API の「被ブックマーク合計数取得API」

本APIは、特定のURL配下のすべてのURLの合計ブックマーク数を取得するAPIです。

http://api.b.st-hatena.com/entry.total_count?url={encoded_url}

本APIは、実験的に提供しておりました。今回、ご利用状況を調査したところ、正常なご利用がたいへん少ない一方で、他のAPIと比べて維持にコストがかかる内部実装であるため、廃止いたします。

代替手段として、同じページで案内している「GET リクエストでのシンプルな API(複数版)」利用し、ご自身で合計するなどの方法をご検討ください。

ご注意:利用しているサードパーティのライブラリもご確認ください

動作検証をする際の注意点として、アプリケーションが利用しているサードパーティのライブラリが、内部的にはてなブックマークのAPIを利用している場合があります。そのため、お手元のアプリケーションのソースコードを確認するだけでなく、アプリケーションから利用しているサードパーティのライブラリの実装もご確認ください。

利用しているサードパーティのライブラリが HTTP のエンドポイントを利用していた場合は、そのライブラリの作者の方に、開発者の皆様自身でご連絡ください。

一部のドメインでのAPIの提供も終了します

各API の HTTPS への切り替えと同時に、はてなブックマークで過去に利用していた一部ドメインを廃止いたします。サイト運営者の皆様において、これらのドメインを直接参照してはてなブックマークのAPIなどのリソースを利用している場合は、2020年3月4日以降はご利用いただけなくなりますのでご注意ください。事前に、上記の案内や現行のガイドページ等の内容に従い、各自で移行してください。

ドメイン 過去の主な用途
cdn.api.b.hatena.ne.jp はてなブックマークボタンの配信
cdn-ak.b.st-hatena.com はてなブックマーク件数取得API、旧システムにおける一部の画像の配信
api.b.st-hatena.com はてなブックマークボタンの配信
api.b.hatena.ne.jp はてなブックマークREST API (2020年3月3日まで)

以上のとおり、はてなブックマークの各APIをご利用中のアプリケーション開発者の皆様は、お手数ですが 2020年3月4日(水)までに、ご対応をお願いいたします。