Hatena::Grouphatenadeveloper

iOS向けAPI - はてなブックマーク外部連携API

ja/ios/apis/bookmark

iOS向けAPI - はてなブックマーク外部連携API

本ドキュメントは、はてなブックマーク iOSアプリにおける、コメント画面及びブックマーク画面を呼び出す外部連携仕様について解説するものです。

はてなブックマーク iOSアプリ外部連携APIとは

はてなブックマーク iOSアプリ外部連携APIは、外部のiOSアプリからはてなブックマーク iOSアプリのコメント一覧画面と、ブックマーク追加画面を呼び出すことができるAPIです。はてなブックマーク iOSアプリ2.1以上で利用できますが、本ドキュメントではバージョン3.14以降の動作を記します。

このAPIを使用することで、はてなブックマークアプリを起動しコメント一覧を表示したり、ブックマークを追加する機能を実装することができます。

API仕様

外部連携にはスキーマ連携と呼ばれる仕組みを利用します。具体的にはhatenabookmarkで始まるURLを呼び出すことで、はてなブックマークアプリを起動します。仕様は以下のとおりです。

コメント一覧画面

APIへのリクエストサンプルを示します。

hatenabookmark:/entry?url=http%3A%2F%2Fdeveloper.hatena.ne.jp%2Fja%2Fdocuments%2Fios%2Fapis%2Fbookmark

hatenabookmarkをスキーマとし、エンドポイント/entryにアクセスします。パラメータとして必ずurlをとります。

パラメータの詳細
  • url(必須)
    • コメントを表示したいWebページのURL
  • backurl(任意)
    • 戻るボタンをタップした際に呼び出されるURL
    • 指定されない場合は呼び出し元アプリに戻るボタンは表示されません

追加・編集画面

リクエストサンプルを示します。

hatenabookmark:/entry/add?url=http%3A%2F%2Fdeveloper.hatena.ne.jp%2Fja%2Fdocuments%2Fios%2Fapis%2Fbookmark

hatenabookmarkをスキーマとし、エンドポイント/entry/addにアクセスします。パラメータとして必ずurlをとります。

パラメータの詳細
  • url(必須)
    • ブックマークを追加・編集したいWebページのURL
  • title(任意)
    • urlパラメータで指定されたWebページのタイトル
    • はてなブックマークアプリは自動でWebページのタイトルを取得しますが、titleパラメータを指定するとタイトルを取得するのを待つこと無くデータが表示することができます
  • backurl(任意)
    • 戻るボタンをタップした際に呼び出されるURL
    • 指定されない場合は呼び出し元アプリに戻るボタンは表示されません

実装例

APIを呼び出す際には以下のようにURLを組み立て、UIApplication.openURL(_:)メソッドで起動します。URLのクエリパラメーターはすべてURLエンコードしてください。

let components = NSURLComponents()
components.scheme = "hatenabookmark"
components.path = "/entry/add"
components.queryItems = [
    NSURLQueryItem(name: "url", value: "http://developer.hatena.ne.jp/ja/documents/ios/apis/bookmark"),
    NSURLQueryItem(name: "title", value: "iOS向けAPI - はてなブックマーク外部連携API - Hatena Developer Center"),
    NSURLQueryItem(name: "backurl", value: "hatenabookmarksample:/"),
]
if let url = components.URL {
    UIApplication.sharedApplication.openURL(url)
}

ブックマークレット

はてなブックマークアプリを呼び出すブックマークレットを以下に示します。実装の参考にしてみてください。

コメントを見る

(function() {var url = location.href; location.href = "hatenabookmark:/entry?url=" + encodeURIComponent(url) + "&backurl=" + encodeURIComponent(url);})()

ブックマークする

(function() {var url = location.href; var title = document.title; location.href = "hatenabookmark:/entry/add?url=" + encodeURIComponent(url) + "&title=" + encodeURIComponent(title) + "&backurl=" + encodeURIComponent(url);})()

変更履歴

  • 2016年6月13日 backtitleのサポートを終了
  • 2011年4月26日 リリース