phoenix-powerGoogle APIのBlogger v3を使ってBloggerにポストしてみました。

昔は、Google CLというものがありまして、非常に便利でした。これは、各種GoogleサービスAPIのCLIクライアントという感じのものですが、Google APIがOAuth2.0対応のみになったためOAuth1.0のGoogleCLは使えなくなりました。

現在、リポジトリのほうはForkされて引き継がれているため、動くと思うのですが、なんかよくわからなかったので、自分で適当なクライアントを作ってみました。

https://github.com/syui/blogger-cl

仕組みは簡単で、単にcurlでAPIを叩いているだけです。

これも前回作成したGoogle+ APIを使ったもののコピーとなっています。多少仕様が変更されているのか、動かなかったものもありますが、ほぼそのままで動かせました。

OAuth2.0認証なので、ログインして、適切な権限を与えてください。

あと、上のリポジトリはクライアントとして作成するのではなく、あくまでクライアントを動作させる仕組みですので、使う人は自身でAPIを動かすために必要なクライアントキーを用意する必要があります。

つまり、私自身はキーを提供しませんので、ログイン認証や承認すれば使えるというものではなく、Google APIのBloggerを有効にし、クライアントキーなど必要なものを用意して動かす形になります。もちろんログイン認証なども必要。その点で言えば開発者向けです。

手順としては、以下です。

Blogger APIの有効化

OAuth2.0クライアントIDの発行とダウンロード

ダウンロードしたものは、リポジトリルートの./jsonに置くか~/Downloadsにおいてください。

あとは、以下のコマンドを実行します。

1
2
3
4
5
6
7
8
9
10
11
12
$ git clone https://github.com/syui/blogger-cl
$ cd blogger-cl
# Blogger IDは管理画面ダッシュボードのURLを見てください
$ vim blogger.json
# jq
$ ./blogger-cl
# ブラウザが開き(Mac:Chrome,Linux:Firefox)、承認を求められます
# 承認したら端末に戻ってEnterを押します。Tokenなどが取得できていれば成功
# 自動でエディタ(vim)を開き所定の形式が表示されます。それを保存したらポストされます

# テスト機能:過去記事の編集とポスト(peco)
$ ./blogger-cl -u

良さなクライアントアプリができたら是非教えて下さい。通常のクライアントアプリは、以下のライブラリなどを使い、サンプルを見ながら作るのが一般的だと思われます。私は過去に作ったスクリプトをコピーして使いましたが、はじめての方はライブラリを使った方法のほうが早く完成します。

ライブラリ

https://github.com/google/google-api-go-client/tree/master/blogger/v3

サンプル

https://github.com/google/google-api-go-client/tree/master/examples

To-Do

現在、jsonでそのまま書きますが、所定の形式(yml,toml)などをjsonに自動変換する処理を入れても良いと思います。また、テキストもhtmlで書くのではなく、markdownで書き、変換してポストするのもよいと考えています。

ただ、変換に使うツールへの依存が生じ、それを解消するためには一般言語で書いたほうが良いかもしれません。