Hatena::Grouphatenadeveloper

はてなブックマークoEmbed API

ja/bookmark/apis/oembed

はてなブックマークoEmbed API

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

はじめに

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

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

詳細説明

エンドポイント

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

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

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

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

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

リクエスト(JSON)

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

$ curl 'http://b.hatena.ne.jp/api/oembed?url=http%3A%2F%2Fb%2Ehatena%2Ene%2Ejp%2Fentry%2F370%2Fcomment%2Fsample&format=json'

http://b.hatena.ne.jp/api/oembed?url=http%3A%2F%2Fb%2Ehatena%2Ene%2Ejp%2Fentry%2F370%2Fcomment%2Fsample&format=json

レスポンス(JSON)

{
    "width": "100%",
    "author_name": "sample",
    "author_url": "http://b.hatena.ne.jp/sample/bookmark",
    "provider_url": "http://b.hatena.ne.jp",
    "version": "1.0",
    "provider_name": "Hatena Bookmark",
    "height": "160px",
    "html": "<blockquote class=\"hatena-bookmark-comment\"><a class=\"comment-info\" href=\"http://b.hatena.ne.jp/entry/370/comment/sample\" data-user-id=\"sample\" data-entry-url=\"http://b.hatena.ne.jp/entry/www.hatena.ne.jp/\" data-original-href=\"http://www.hatena.ne.jp/\" data-user-icon=\"/users/sa/sample/profile.gif\">sample - 『はてな』 へのコメント</a><ul class=\"comment-tag\" style=\"list-style: none; margin: 0px;\"><li style=\"float: left\">[<a href=\"http://b.hatena.ne.jp/search/tag?q=%E6%83%85%E5%A0%B1%E5%8F%8E%E9%9B%86\">情報収集</a>]</li><li style=\"float: left\">[<a href=\"http://b.hatena.ne.jp/search/tag?q=web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9\">webサービス</a>]</li></ul><br><p style=\"clear: left\">はてなのトップページ。</p><a class=\"datetime\" href=\"http://b.hatena.ne.jp/sample/20090116#bookmark-370\"><span class=\"datetime-body\">2009/01/16 15:50</span><span class=\"datetime-suffix\"> にブックマーク</span></a></blockquote><script src=\"//b.hatena.ne.jp/js/comment-widget.js\" charset=\"utf-8\" async></script>\n",
    "url": "http://b.hatena.ne.jp/entry/370/comment/sample",
    "title": "はてなのトップページ。 - sample のコメント / はてなブックマーク",
    "type": "rich"
}

リクエスト(XML)

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

$ curl 'http://b.hatena.ne.jp/api/oembed?url=http%3A%2F%2Fb%2Ehatena%2Ene%2Ejp%2Fentry%2F370%2Fcomment%2Fsample&format=xml'

http://b.hatena.ne.jp/api/oembed?url=http%3A%2F%2Fb%2Ehatena%2Ene%2Ejp%2Fentry%2F370%2Fcomment%2Fsample&format=xml

レスポンス(XML)

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<oembed>
  <author_name>sample</author_name>
  <author_url>http://b.hatena.ne.jp/sample/bookmark</author_url>
  <height>160px</height>
  <html>&lt;blockquote class=&quot;hatena-bookmark-comment&quot;&gt;&lt;a class=&quot;comment-info&quot; href=&quot;http://b.hatena.ne.jp/entry/370/comment/sample&quot; data-user-id=&quot;sample&quot; data-entry-url=&quot;http://b.hatena.ne.jp/entry/www.hatena.ne.jp/&quot; data-original-href=&quot;http://www.hatena.ne.jp/&quot; data-user-icon=&quot;/users/sa/sample/profile.gif&quot;&gt;sample - 『はてな』 へのコメント&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;http://b.hatena.ne.jp/search/tag?q=%E6%83%85%E5%A0%B1%E5%8F%8E%E9%9B%86&quot;&gt;情報収集&lt;/a&gt;]&lt;/li&gt;&lt;li style=&quot;float: left&quot;&gt;[&lt;a href=&quot;http://b.hatena.ne.jp/search/tag?q=web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9&quot;&gt;webサービス&lt;/a&gt;]&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;p style=&quot;clear: left&quot;&gt;はてなのトップページ。&lt;/p&gt;&lt;a class=&quot;datetime&quot; href=&quot;http://b.hatena.ne.jp/sample/20090116#bookmark-370&quot;&gt;&lt;span class=&quot;datetime-body&quot;&gt;2009/01/16 15:50&lt;/span&gt;&lt;span class=&quot;datetime-suffix&quot;&gt; にブックマーク&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;script src=&quot;//b.hatena.ne.jp/js/comment-widget.js&quot; charset=&quot;utf-8&quot; async&gt;&lt;/script&gt;
</html>
  <provider_name>Hatena Bookmark</provider_name>
  <provider_url>http://b.hatena.ne.jp</provider_url>
  <title>はてなのトップページ。 - sample のコメント / はてなブックマーク</title>
  <type>rich</type>
  <url>http://b.hatena.ne.jp/entry/370/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="http://b.hatena.ne.jp/api/oembed?url=http%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F370%2Fcomment%2Fsample&amp;format=json" title="oEmbed Profile of はてなのトップページ。 - sample のコメント">
<link rel="alternate" type="application/xml+oembed" href="http://b.hatena.ne.jp/api/oembed?url=http%3A%2F%2Fb.hatena.ne.jp%2Fentry%2F370%2Fcomment%2Fsample&amp;format=xml" title="oEmbed Profile of はてなのトップページ。 - sample のコメント">

参考文章

変更履歴

  • 2014年10月23日 リリース