(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【curl/API】はてなブログを自動で新規投稿する流れ

スポンサーリンク

はじめに

はてなブログではAPIを利用することで自動投稿/更新が可能です。

以下記事にてcurlコマンドを用いたブログの更新方法は説明したので

本記事では自動投稿について解説します。

はてなブログAPIの動作確認

詳細は以下の開発チームの記事にありますが
はてなブログAtomPub - Hatena Developer Center
自動投稿/更新はXMLデータの送付で行います

curlコマンドとid/keyの動作検証も兼ねて

# curl -u {ブログID}:{AtomPubAPIキー} https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom/entry/

とターミナルで打ってみてください。
下書き含め、記事の情報がずらずらと標準出力から取得できます。

入力に必要なAtomPubAPIキーはSettingのAdvanced部分に記載されており、
はてなID等が含まれるURLもRoot endpointとして記載されています。

自動投稿ワンライナー

test.xmlを用意し、以下コマンドを投入します。

cat test.xml | curl -X POST -H "Content-type: text/xml" --data-binary @- -u {はてなID}:{AtomPubAPIキー} https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom/entry/

test.xmlの内容は同様で以下です。

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
       xmlns:app="http://www.w3.org/2007/app">
  <title>ブログタイトル</title>
  <author><name></name></author>
  <content type="text/plain">
ブログ本文
  </content>
  <category term="ブログカテゴリ" />
  <app:control>
    <app:draft>no</app:draft>
  </app:control>
</entry>

ちなみにURLは以下のSettingルールに従って投稿されます。
f:id:mtiit:20190515211338p:plain

終わりに

Linuxコマンドに精通している方なら馴染み深いcurlコマンドでブログが投稿できるため、個人的には便利に利用しています。
同様のことに興味がある方がいれば参考になれば幸いです。