はてなブログの記事をアップロードするコマンドを作った

github.com

hatenaはoauth1.0aっぽいのでわりとだるかった。

インストー

$ go get github.com/podhmo/hatena/cmd/hatena

使い方

新規投稿と編集を手軽にやりたかった。投稿した時点でaliasを覚えてくれるので編集が楽。

# 新規投稿
$ hatena -alias foo foo.md
# 編集
$ hatena -alias foo foo.md
# 新規投稿(aliasが異なる)
$ hatena -alias boo boo.md

ちなみに aliasを付けなくても良くてdefaultでheadのaliasが付く。ただしaliasのオプションを付けなかった場合は常に新規投稿扱い。

# 新規投稿
$ hatena foo.md
# 編集
$ hatena -alias head foo.md
# 新規投稿(alias指定なし)
$ hatena foo.md

そういえば

事前に設定が必要。

  1. oauthのアプリを作る
  2. consumer key, consumer secretを埋めてアプリを実行
  3. access token, access secretを取得する

設定は以下の場所に入る

tree ~/.hatena
~/.hatena
├── config.json
└── hatena.history

こういう感じの構造

{
  "default_alias": "head",
  "hist_file": "~/.hatena/hatena.history",
  "consumer_key": "xxXXXxxxxxxxXxxx",
  "consumer_secret": "xXxxXxxXxxXxxxxxxXxxXxxxXxxx",
  "client_id": "XxxxxXxxxxxxxxxx",
  "client_secret": "XxXxXxxXXxxXXxxXxxxxxXXXxXXx",
  "hatena_id": "podhmo",
  "blog_id": "pod.hatenablog.com"
}

consumer_key, consumer_secretの取得はこのあたりを参考に

(client_id, client_secretは勝手に入る)