はてなブログAPIを叩くシェルスクリプトを作ってみたので、そのとき調べたAPIについてのメモ書き。
ルートのURL
はてなブログAPIを利用するために実際やることは、ブログ固有のURLにHTTPリクエストを送るだけだ。
以下が1つのブログで使う共通のルートURL(以降、{RootURL}と表記)。
https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom
操作とHTTPリクエストの対応
操作 | HTTPメソッド | リクエストURL({RootURL}以降) | 備考 |
---|---|---|---|
サービス文書取得 | GET | {RootURL} | |
カテゴリ一覧取得 | GET | {RootURL}/category | |
記事一覧取得 | GET | {RootURL}/entry | 最新の投稿10件取得 |
記事一覧取得 | GET | {RootURL}/entry?page={page_id} | 10件ずつ取得。{page_id} 省略時は、最新の投稿10件 |
記事の取得 | GET | {RootURL}/entry/{entry_id} | 記事内容の改行文字は\r\n っぽい |
記事の編集 | PUT | {RootURL}/entry/{entry_id} | コンテンツはXML形式で送る |
記事の削除 | DELETE | {RootURL}/entry/{entry_id} | |
記事の投稿 | POST | {RootURL}/entry | コンテンツはXML形式で送る |
- {page_id}: 記事一覧のページ番号的なもの。単純に1とか2じゃないので注意
- 次のページ番号を含む記事一覧のURLは、``にある。
- これがAtomPubの仕様っぽい
- {entry_id}: 記事ごとに用意されたID。どの記事を取得・操作するかを指定するのに使える
認証
はてなブログAPIを叩くには認証が必要になる。
ベーシック認証にも対応しているようで、cURLの-u
オプションが使える。
> curl -u {はてなID}:{APIキー}