(新)AtomPub APIについてはこちら。
項目一覧
(確認したい項目をクリックしてください)
API仕様
AtomPubプロトコルに準じます。また、後述する記事投稿用のエントリ文書には独自拡張タグを含みます。
AtomPub仕様解説ページ集
(旧)Atom Pub APIでできること
(旧)Atom Pub APIを利用することで、記事の投稿、編集、画像の投稿などができます。
利用可能な操作は以下のものがあります。
URL | get | post | put | delet |
---|---|---|---|---|
article | 最新20件の記事の取得 | 記事の投稿 | 利用不可 | 利用不可 |
article/ARTICLE_ID | ARTICLE_IDで指定された記事の取得 | 記事の投稿 | ARTICLE_IDで指定した記事の更新 | ARTICLE_IDで指定した記事の削除 |
category | 全記事カテゴリー情報の取得 | 利用不可 | 利用不可 | 利用不可 |
image | 最新20件の画像情報の取得 | 画像の投稿 | 利用不可 | 利用不可 |
image/IMAGE_ID | IMAGE_IDで指定した画像の取得 | 画像の投稿 | IMAGE_IDで指定した画像タイトルの更新 | IMAGE_IDで指定した画像の削除 |
comment | 最新20件のコメント情報の取得 | 利用不可 | 利用不可 | 利用不可 |
comment/COMMENT_ID | COMMENT_IDで指定した画像の取得 | 利用不可 | 利用不可 |
利用不可 |
APIへリクエストする際のURL
下記のいずれかのURLにリクエストを送ることで、記事や画像の投稿ができます。
BLOG_NAMEは対象としているブログのblog_nameです。
(例:http://blog.livedoor.jp/staff/ の場合はstaff)
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/article
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/article/ARTICLE_ID
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/category
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/image
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/image/IMAGE_ID
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/comment
- https://livedoor.blogcms.jp/atom/blog/BLOG_NAME/comment/COMMENT_ID
認証方式
WSSE認証を利用します。
APIキーは ブログ管理画面>「ブログ設定」>その他の「API Key」のページにある「AtomPub用パスワード」です。APIキー(AtomPub用パスワード)は半角英数字10字です。
初回はAPIキー(AtomPub用パスワード)が存在しませんので、[発行する]で発行してください。
発行された状態で、[再発行する]をクリックすると、APIキー(AtomPub用パスワード)を再生成できます。
記事の投稿方法
記事投稿用のXMLの例は下記の通りです。
下記の部分は自分のブログのURLに書き換えてください
- http://blog.livedoor.jp/staff/archives/000000.html
- http://livedoor.blogcms.jp/blog/staff/article/000000
XML
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app"
xmlns:blogcms="http://blogcms.jp/-/spec/atompub/1.0/">
<title>Article Title</title>
<link rel="alternate" type="text/html"
href="http://blog.livedoor.jp/staff/archives/000000.html" />
<link rel="edit" type="application/atom+xml;type=entry"
href="http://livedoor.blogcms.jp/blog/staff/article/000000" title="Article Title" />
<id>tag:example.org,2003:3.2397</id>
<updated>2009-07-28T00:00:00+09:00</updated>
<published>2009-07-28T00:00:00+09:00</published>
<author><name>staff</name></author>
<content type="text/html" xml:lang="ja"
xml:base="http://blog.livedoor.jp/staff/archives/000000.html">
<p>記事本文</p>
</content>
<category scheme="http://livedoor.blogcms.jp/blog/staff/category" term="お知らせ" />
<blogcms:source>
<blogcms:body><![CDATA[<p>記事本文</p>]]></blogcms:body>
<blogcms:more><![CDATA[<p>記事追記部分</p>]]></blogcms:more>
<blogcms:private><![CDATA[<p>記事プライベート部分</p>]]></blogcms:private>
</blogcms:source>
<app:control>
<app:draft>yes</app:draft>
</app:control>
</entry>
- Atomフォーマットのエントリ文書です。
- atom:contentに書かれたテキストは全て「本文」として扱われます。
- atom:contentを使用する場合、記事の投稿フォーマット設定に関わらず全て「HTML」として扱われます。自動改行や自動リンクも適用されません。
- blogcms:sourceを使用する場合、記事の投稿フォーマット設定に従います。
- DBに保存されているソースは「本文」「追記」「プライベート追記」は、それぞれblogcms:source以下にblogcms:body、blogcms:more、blogcms:privateとして含めます。
- article/ARTICLE_ID、image/IMAGE_IDにGETリクエストを送った場合、atom:contentとblogcms:source両方を含むエントリ文書を返します。
- article/ARTICLE_ID、image/IMAGE_IDにPOSTする際、atom:contentとblogcms:source両方を含む場合はblogcms:sourceを優先します。
記事カテゴリについて
エントリ文書の post 時に、category 要素を含めて投稿した場合、そのカテゴリを記事カテゴリとして設定します。
投稿時点でカテゴリが存在しない場合は、新たにカテゴリを作成した後に設定します。
ただし、ユーザが上限までカテゴリを設定している状態で、存在しないカテゴリを含むエントリ文書をポストした場合は、カテゴリを作成することができないため、そのカテゴリは無視します。
画像付きの記事を投稿する場合
画像付きの記事を投稿する場合、まずはimageのURLを利用して画像をpostし、その後で、投稿した画像を記載した記事を投稿してください。
画像のタイトルを変更する場合
mage/IMAGE_IDのURLでputメソッドを実行して変更する場合、Content-Typeをapplication/atom+xml;type=entryに設定してから利用してください。
Content-Typeの設定は、image/IMAGE_IDのURLでPUTをする時のみ設定が必要です。image/IMAGE_IDのURL以外でpostやputをする時には設定は不要です。
ARTICLE_ID、IMAGE_IDの取得方法
ARTICLE_ID、IMAGE_IDの取得方法は下記の通りです。
ARTICLE_IDの取得方法
①/article/のURLでgetメソッドを実行し、記事の情報を取得する
②<link rel="edit"〜〜title="記事タイトル"/>、または<id>〜</id>で囲まれている行の数値がARTICLE_IDです。
<title>テスト記事</title>
<linkrel href="http://test.blog.jp/archives/4291502.html">
<linkrel title="テスト記事" href="https://livedoor.blogcms.jp/atom/testblog/article/4291502">
<id>tag:.blogcms.jp,2009-07-28:article-test.4291502</id>
IMAGE_IDの取得方法
①〜/image/のURLでgetメソッドを実行し、画像の情報を取得する
②<id>〜</id>で囲まれている行の数値がIMAGE_IDです。
<title>テストの画像</title>
<id>tag:.blogcms.jp,2019-11-25:image-blog/test.10196893</id>
<updated>2019-11-25T13:10:01+09:00</updated>
(旧)AtomPub APIのテスト方法
AtomPub APIはGoogle Chromeの拡張機能「Talend API Tester」でテストすることができます。
(旧)Talend API Testerの設定方法
- ①メソッドを選択する
- ②URLを記入する
- ③WSSE認証の場合は、livedoor IDとAPIキー(AtomPub用パスワード)を含むWSSEを記入する
- ④authorizationにWSSE profile="UsernameToken"と記入する
- ⑤送信をクリックする
- ⑥リクエストが正常に受け付けられ、レスポンスが返ってくることを確認する