Hatena::Grouphatenadeveloper

はてなブックマークoEmbed API

ja/bookmark/apis/oembed

はてなブックマーク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>
&lt;blockquote class=&quot;hatena-bookmark-comment&quot;&gt;&lt;a class=&quot;comment-info&quot; href=&quot;https://b.hatena.ne.jp/entry/40863/comment/sample&quot; data-user-id=&quot;sample&quot; data-entry-url=&quot;https://b.hatena.ne.jp/entry/hatena.g.hatena.ne.jp/hatena/&quot; data-original-href=&quot;http://hatena.g.hatena.ne.jp/hatena/&quot; data-entry-favicon=&quot;https://cdn-ak2.favicon.st-hatena.com/?url=http%3A%2F%2Fhatena.g.hatena.ne.jp%2Fhatena%2F&quot; data-user-icon=&quot;/users/sample/profile.png&quot;&gt;はてなの日記 - 機能変更、お知らせなど&lt;/a&gt;&lt;ul class=&quot;comment-tag&quot; style=&quot;list-style: none; margin: 0px;&quot;&gt;&lt;li style=&quot;float: left&quot;&gt;[&lt;a href=&quot;https://b.hatena.ne.jp/search/tag?q=hatena&quot;&gt;hatena&lt;/a&gt;]&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;p style=&quot;clear: left&quot;&gt;&amp;lt;a href=&amp;quot;/hatena/&amp;quot;&amp;gt;id:hatena&amp;lt;/a&amp;gt;さんの日記&lt;/p&gt;&lt;a class=&quot;datetime&quot; href=&quot;https://b.hatena.ne.jp/sample/20071124#bookmark-40863&quot;&gt;&lt;span class=&quot;datetime-body&quot;&gt;2007/11/24 18:18&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;script src=&quot;https://b.st-hatena.com/js/comment-widget.js&quot; charset=&quot;utf-8&quot; async&gt;&lt;/script&gt;</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日 リリース