はてなブックマークoEmbed API
はてなブックマークコメントoEmbed API
はじめに
はてなブックマークコメントoEmbed APIを使うと、はてなブックマークコメントをoEmbedを用いて埋め込むことが可能です。
oEmbedの詳細についてはoEmbed(英語)をご覧ください。
詳細説明
エンドポイント
エンドポイントは以下に定義しています。
https://b.hatena.ne.jp/api/oembed
このエンドポイントにいくつかのパラメータを加えてGETリクエストを送ることで、JSON形式もしくはXML形式でデータを取得することができます。エンコーディングはUTF-8です。
パラメータ | デフォルト | 解説 |
---|---|---|
url | - | (必須)参照したいコメントのパーマリンクを指定する |
format | json | (オプション)データの形式を指定する(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'
レスポンス(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'
レスポンス(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">&lt;a href=&quot;/hatena/&quot;&gt;id:hatena&lt;/a&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&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&format=xml" title="oEmbed Profile of はてなのトップページ。 - sample のコメント">
参考文章
- oEmbed(英語)
変更履歴
- 2019年08月29日 APIエンドポイントをHTTPSに対応
- 2014年10月23日 リリース