メインコンテンツまでスキップ

はてなブックマークoEmbed API

はてなブックマークコメントoEmbed API

はじめに

はてなブックマークコメントoEmbed APIを使うと、はてなブックマークコメントをoEmbedを用いて埋め込むことが可能です。

oEmbedの詳細についてはoEmbed(英語)をご覧ください。

詳細説明

エンドポイント

エンドポイントは以下に定義しています。

https://b.hatena.ne.jp/api/oembed

このエンドポイントにいくつかのパラメータを加えてGETリクエストを送ることで、JSON形式もしくはXML形式でデータを取得することができます。エンコーディングはUTF-8です。

パラメータデフォルト解説
url-(必須)参照したいコメントのパーマリンクを指定する
formatjson(オプション)データの形式を指定する(jsonもしくはxml)

なお、ブックマークの公開範囲が「すべての人に公開」に設定されているブックマークについてのみ、データを取得できます。非公開(プライベート)のブックマークに関する情報を参照することはできません。

リクエスト(JSON)

https://b.hatena.ne.jp/entry/40863/comment/sample の埋め込みデータをJSON形式で取得。

$ curl 'https://b.hatena.ne.jp/api/oembed?url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F40863%2Fcomment%2Fsample&format=json'

https://b.hatena.ne.jp/api/oembed?url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F40863%2Fcomment%2Fsample&format=json

レスポンス(JSON)

{
"provider_url": "https://b.hatena.ne.jp/",
"title": "id:hatenaさんの日記 - sample のコメント / はてなブックマーク",
"provider_name": "Hatena Bookmark",
"width": "100%",
"type": "rich",
"author_url": "https://b.hatena.ne.jp/sample/",
"url": "https://b.hatena.ne.jp/entry/40863/comment/sample",
"height": "160px",
"author_name": "sample",
"version": "1.0",
"html": "\n<blockquote class=\"hatena-bookmark-comment\"><a class=\"comment-info\" href=\"https://b.hatena.ne.jp/entry/40863/comment/sample\" data-user-id=\"sample\" data-entry-url=\"https://b.hatena.ne.jp/entry/hatena.g.hatena.ne.jp/hatena/\" data-original-href=\"http://hatena.g.hatena.ne.jp/hatena/\" data-entry-favicon=\"https://cdn-ak2.favicon.st-hatena.com/?url=http%3A%2F%2Fhatena.g.hatena.ne.jp%2Fhatena%2F\" data-user-icon=\"/users/sample/profile.png\">はてなの日記 - 機能変更、お知らせなど</a><ul class=\"comment-tag\" style=\"list-style: none; margin: 0px;\"><li style=\"float: left\">[<a href=\"https://b.hatena.ne.jp/search/tag?q=hatena\">hatena</a>]</li></ul><br><p style=\"clear: left\"><a href="/hatena/">id:hatena</a>さんの日記</p><a class=\"datetime\" href=\"https://b.hatena.ne.jp/sample/20071124#bookmark-40863\"><span class=\"datetime-body\">2007/11/24 18:18</span></a></blockquote><script src=\"https://b.st-hatena.com/js/comment-widget.js\" charset=\"utf-8\" async></script>"
}

リクエスト(XML)

https://b.hatena.ne.jp/entry/40863/comment/sample の埋め込みデータをXML形式で取得。

$ curl 'https://b.hatena.ne.jp/api/oembed?url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F40863%2Fcomment%2Fsample&format=xml'

https://b.hatena.ne.jp/api/oembed?url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F40863%2Fcomment%2Fsample&format=xml

レスポンス(XML)

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<oembed>
<author_name>sample</author_name>
<author_url>https://b.hatena.ne.jp/sample/</author_url>
<height>160px</height>
<html>
<blockquote class="hatena-bookmark-comment"><a class="comment-info" href="https://b.hatena.ne.jp/entry/40863/comment/sample" data-user-id="sample" data-entry-url="https://b.hatena.ne.jp/entry/hatena.g.hatena.ne.jp/hatena/" data-original-href="http://hatena.g.hatena.ne.jp/hatena/" data-entry-favicon="https://cdn-ak2.favicon.st-hatena.com/?url=http%3A%2F%2Fhatena.g.hatena.ne.jp%2Fhatena%2F" data-user-icon="/users/sample/profile.png">はてなの日記 - 機能変更、お知らせなど</a><ul class="comment-tag" style="list-style: none; margin: 0px;"><li style="float: left">[<a href="https://b.hatena.ne.jp/search/tag?q=hatena">hatena</a>]</li></ul><br><p style="clear: left">&amp;lt;a href=&amp;quot;/hatena/&amp;quot;&amp;gt;id:hatena&amp;lt;/a&amp;gt;さんの日記</p><a class="datetime" href="https://b.hatena.ne.jp/sample/20071124#bookmark-40863"><span class="datetime-body">2007/11/24 18:18</span></a></blockquote><script src="https://b.st-hatena.com/js/comment-widget.js" charset="utf-8" async></script></html>
<provider_name>Hatena Bookmark</provider_name>
<provider_url>https://b.hatena.ne.jp/</provider_url>
<title>id:hatenaさんの日記 - sample のコメント / はてなブックマーク</title>
<type>rich</type>
<url>https://b.hatena.ne.jp/entry/40863/comment/sample</url>
<version>1.0</version>
<width>100%</width>
</oembed>

エラー

間違ったリクエストが行われた場合や閲覧権限がない場合、APIがエラーを返すことがあります。

エラーコード主なエラー
404対象のエントリーやコメントの閲覧権限がない
501指定されたパラメータが正当でない

Discovery

oEmbedの仕様では、head内にある要素を埋め込むことで、そのWebサイトがoEmbedに対応していることを示すことができます。はてなブックマークoEmbedもこの仕様に準拠しており、APIのエンドポイントをここから得ることもできます。具体的には以下の要素が埋め込まれています。

<link rel="alternate" type="application/json+oembed" href="https://b.hatena.ne.jp/api/oembed?url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F40863%2Fcomment%2Fsample&amp;format=json" title="oEmbed Profile of はてなのトップページ。 - sample のコメント">
<link rel="alternate" type="application/xml+oembed" href="https://b.hatena.ne.jp/api/oembed?url=https%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F40863%2Fcomment%2Fsample&amp;format=xml" title="oEmbed Profile of はてなのトップページ。 - sample のコメント">

参考文章

変更履歴

  • 2019年08月29日 APIエンドポイントをHTTPSに対応
  • 2014年10月23日 リリース