タダケンのEnjoy Tech

楽しみながらラクに成果を上げる仕組みを考える

はてなブログにコマンド一発で投稿するPythonスクリプトを作ってみた

f:id:tadaken3:20170824220135p:plain こんにちは。
タダケン(@tadaken3)です。

はてなブログへの投稿を少しでも便利にしたいと思い、テキストファイルをはてなブログに投稿するPythonスクリプトを作成しました。使い方をご紹介します。

github.com

はてなブログは、はてなブログAtomPubというAPIを公開しています。認証形式はOauth2、WSSE、BASICに対応しています。今回のスクリプトではWSSE認証で、ブログの投稿を行っています。1

はてなブログ投稿スクリプトの使い方

事前準備

以下の環境で動作することを確認しています。Python3のスクリプトです。

  • python: 3++
  • system: mac OS X, windows 7

まずスクリプトをGitHubからDLします。

$git clone https://github.com/tadaken3/hatenablog_post.git


もしくはGithubのページにアクセスして、「Clone or download」ボタンを押してダウンロードします。

f:id:tadaken3:20170824152859p:plain

依存関係のあるPythonライブラリはrequestschardetです。requestsはHTTPライブラリ、chardetはファイルの文字コードを調べるのに利用しています。pipでインストールしましょう。

$pip install requests
$pip install chardet


次に認証情報をスクリプトに埋め込みます。hatenablog_post.pyファイルの以下の部分を変更します。

username = 'username'
api_key  = 'API key'
blogname = 'yourblogname.hatenablog.com'


usernameは、はてなのIDです。api_keyとblognameは、はてなブログの管理画面から「設定>>詳細設定」で確認することができます。AtomPubの欄に記載があります。例えば、このブログの場合は「tadaken3.hatenablog.jp」です。2

f:id:tadaken3:20170824145612p:plain

これで準備がオッケーです。

ブログを投稿してみる

hatenablog_post.pyと同じディレクトリにブログ原稿を保存します。ファイルの1行目がタイトル、2行目以降が本文になります。例えばblog.mdというファイルを作ってブログタイトルと原稿本文を書いて保存してみましょう。

作成したファイルを引数にとって、スクリプトを実行します。

$ python hatenablog_post.py blog.md


うまくいくとブログに下書きに記事が反映されます。ブラウザではてなブログにアクセスして確認してみてください。

f:id:tadaken3:20170824150058p:plain

まとめ

cotEditorという軽量のテキストエディタを使用して、ブログ原稿を書いてます。cotEditorはPythonスクリプトで機能を拡張できるようだったので、今回のスクリプトを作成しました。自分がラクをしたいので。3

今回はテキストのみですが、いずれは画像も含めて一発で投稿できるようにしたいと思っています。

参考サイト

みんなのPython 第4版

みんなのPython 第4版


  1. 本記事で紹介したスクリプトは参考サイトにあるkaraageさんの記事をベースにしています。Python3で動くようにしたのとファイルの取扱などを改良しています。

  2. api_keyなどは環境変数に入れて参照することをおすすめします。ネット上にうっかり公開しないよう気をつけましょう。

  3. ちなみにこのままだと諸事情によりcotEditorで動きません。微妙に改良したのはこちらです。