「はてなブログの記事投稿って自動化できるのかな?」と、ふと気になって調べたら普通にAPI提供されていたので触ってみた話。
はてなブログAPIで、はてなブログを投稿する方法を書いておきます。
Restlet Clientをインストール
今回はAPIアクセスして投稿できるのかどうかをサクッと調べたいので、簡単にAPIアクセスとレスポンスを確認することができるChromの拡張ツールRestlet Clientを利用します。
↑こちらをインストールして、起動します。
起動すると↑の画像のようなAPIアクセスを試せる画面が表示されるので、ここでAPIアクセスして記事データをPOSTします!
Restlet ClientではてなAPIにアクセス
APIアクセスのメソッドをPOSTメソッドにし、APIアクセスのURLを記載します。APIアクセスのURLは、設定 > 詳細設定 > AtomPub > ルートエンドポイント に記載してある「https://blog.hatena.ne.jp/xxx/xxx/atom」の末尾に「/entry」を追加したものとします。また、HeaderのContent-Typeをapplication/xmlに設定し、以下のようなXML形式の文書をBODYに貼り付けます。
BODY
<?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>virtual-surfer</name></author> <content type="text/x-markdown"> ** 文章開始 テスト文章 ### 見出し 本文... > 引用文章 </content> <updated>2008-01-01T00:00:00</updated> <category term="Scala" /> <app:control> <app:draft>yes</app:draft> </app:control> </entry>
それぞれ、以下の値を設定しています。
タイトル設定
<title>ブログのタイトルだよ</title>
記事執筆者名
<author><name>virtual-surfer</name></author>
コンテンツの記法指定
<content type="text/x-markdown">
記事本文
<content type="text/x-markdown">本文</content>
カテゴリ指定<category term="Scala" />
下書きか公開か(yesにすると下書き)を指定<app:draft>yes</app:draft>
これらを記載しXML文書をBODYに貼り付けた状態でSendボタンを押してPOSTメソッドでAPIアクセスしてみます。(初めてのAPIアクセスの場合は、user名とpasswordの認証を求められるので、はてなブログに登録しているユーザー名と 設定 > 詳細設定 > AtomPub > APIキーで確認できるAPIキーの値をそれぞれ入力して認証する必要があります。)
ちゃんと下書きに登録されてますね!
まとめ
APIアクセスできることが分かったので、あとはBODY部分のテキストを動的に生成すればある程度自動ではてなブログ更新できるということですね。
Twitterで有名人がつぶやきしている内容をデータベースに保存しておいて、「〇〇が直近半年でのオススメしていた本の一覧!」とかって記事を自動で生成して更新するようにすればBotブロガー生み出せる...。たまにデータだけ貼り付けているブログ記事とか見かけますが、こんなふうにAPIアクセスして自動生成してるんだなということが分かりました。
はてなブログのAPI公式ドキュメントはこちら
はてなブログAtomPub - Hatena Developer Center
気が向いたら自動ブログ更新機能実装してみて紹介します!
↓UdemyでAPIの基礎が丁寧に解説されている講座があるので、基本的なプログラムはこちらで学ぶとよいかも。
では!