LivedoorブログへのAtomPubを使った投稿(メモ)
仕様
旧API(独自拡張付き)と新API(RFC 5023準拠)がある。
旧API仕様
(旧)Atom Pub APIについて - livedoor Blog ヘルプセンター
新API仕様
AtomPub API について - livedoor Blog ヘルプセンター
ドキュメント少な杉。知りたい事はだいたい書いてない。
記事投稿での、できる/できない
できる
- 新規投稿、更新、削除
- タイトル
- 本文
- 要約(旧APIのみ)
- 投稿日時、更新日時
- カテゴリ付け(投稿時に無ければ自動作成する)
- 公開or下書き
要約はindexページ以外にもRSSへの概要掲載が連動する。エロサイトではRSSに画像URLを入れたいケースがほとんどだと思うので、基本的に旧APIを使ってサムネイル画像のURLを入れておくことになると思う。
できない
- 予約投稿(未来日にしてもそのまま公開される)
- タグの追加、記事へのタグ付け
画像アップロードでの、できる/できない
できる
- 画像の追加、更新、削除
できない
- アップロード時のファイル名の指定
- サムネイルを作るかどうかの指定、サムネイル画像のサイズの指定(ブログ設定が適用)
送信例
サンプル作ったのに間違えて消しちゃった、すまんです……
レスポンス例
どちらも成功時にはステータスコード201が返ってくる。
投稿
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app">
<title>APIを使って投稿</title>
<link rel="edit" type="application/atom+xml;type=entry" href="https://livedoor.blogcms.jp/atompub/hentaikun-sandbox/article/1000000000" title="APIを使って投稿" />
<id>tag:.blogcms.jp,2014-10-16:article-hentaikun-sandbox.1000000000</id>
<updated>2014-10-16T13:14:35Z</updated>
<published>2014-10-16T22:14:35+09:00</published>
<author><name>hentaikun</name></author>
<content type="text/html" xml:lang="ja" xml:base="http://hentaikun.blog.jp/archives/1000000000">本文てすと</content>
<category scheme="https://livedoor.blogcms.jp/atompub/hentaikun-sandbox/category" term="atompub"/>
<app:control>
<app:draft>yes</app:draft>
</app:control>
</entry>
画像アップロード
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app">
<title>no title</title>
<link rel="edit" href="https://livedoor.blogcms.jp/atompub/hentaikun-sandbox/image/2000000" />
<id>tag:.blogcms.jp,2014-10-16:image-.20000000</id>
<updated>2014-10-16T20:53:49+09:00</updated>
<author><name>hentaikun</name></author>
<content type="image/jpeg" src="http://livedoor.blogimg.jp/hentaikun-sandbox/imgs/8/0/8000000.jpg" thumbnail="http://livedoor.blogimg.jp/hentaikun-sandbox/imgs/8/0/800000-s.jpg"/>
</entry>
link rel="edit"
のhref値は編集時のAPIコールURLになる(記事投稿と同じ)content
のsrc値が画像のURL、thumbnailがサムネイル画像のURLになる- サムネイル画像のサイズはブログの設定値をそのまま使う
メモ
大きな欠点として予約投稿ができない。
APIを使うケースはほぼ自動化のためだと思うので、これは微妙な仕様だと思う。
回避方法としては、
- 投稿したい時間にcronを回す(ただし、プレビューは見れない)
- 下書きにしておいて手動で予約投稿に変更する(手動動作が入って面倒)
あたりかと。先に下書き投稿してcronでフラグ変更するならいいとこ取りはできる。