ライブドアブログには、新、旧、2つのAtomPubAPIがあります。
(新)AtomPub APIについてはこちら。

API仕様

AtomPubプロトコルに準じます。また、後述する記事投稿用のエントリ文書には独自拡張タグを含みます。

AtomPub仕様解説ページ集

(旧)Atom Pub APIでできること

(旧)Atom Pub APIを利用することで、記事の投稿、編集、画像の投稿などができます。
利用可能な操作は以下のものがあります。画像はクリックで拡大します。

URL get post put delete
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用パスワード)を再生成できます。

    74bf3fbb

    記事の投稿方法

    記事投稿用のXMLの例は下記の通りです。
    下記の部分は自分のブログのURLに書き換えてください。
    • http://blog.livedoor.jp/staff/archives/000000.html
    • http://livedoor.blogcms.jp/blog/staff/article/000000
    <?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">
    &lt;p&gt;記事本文&lt;/p&gt;
        </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の設定方法

    8d40d17a
    • ①メソッドを選択する
    • ②URLを記入する
    • ③WSSE認証の場合は、livedoor IDとAPIキー(AtomPub用パスワード)を含むWSSEを記入する
    • ④authorizationにWSSE profile="UsernameToken"と記入する
    • ⑤送信をクリックする
    • ⑥リクエストが正常に受け付けられ、レスポンスが返ってくることを確認する