Ubuntu Weekly Recipe

第130回 GoogleCLでコマンドラインからGoogleのサービスを利用する

この記事を読むのに必要な時間:およそ 2 分

先月,Googleが自社のサービスをコマンドラインから利用するためのツール,GoogleCLをリリースしました。GoogleCLは,Blogger,Calender,Contacts,Docs,Picasa,YouTubeといったサービスに対応しています。プロジェクトはGoogle Code上でホストされていて1ヶ月ほどの間に2回新バージョンをリリースするなど活発に開発されています。

今回は,GoogleCLをUbuntuにインストールする方法とその使い方を紹介します。

GoogleCLのインストール

原稿執筆時点では,GoogleCLはUbuntuのリポジトリから利用できません。Debianではsid(unstable)でパッケージが利用できますが,登録されたのが,Ubuntu次期リリース10.10(Maverick)のDebianImportFreeze後だったため,次期リリースのリポジトリに入るかは微妙な状況です注1)⁠

しかし,GoogleCLのプロジェクトページでUbuntuに対応したパッケージが配布されているので,ダウンロードページからdebパッケージをダウンロードし,保存したファイルをダブルクリックするだけでインストールできます。パッケージの依存関係を自動で解決しないdpkgコマンドを使う場合は,事前にpython-gdataのインストールが必要です注2)⁠

注1
DebianImportFreeze前に新規パッケージがDebianのリポジトリに登録されると,自動的にUbuntuのリポジトリにも登録されます。また,⁠DebianImportFreeze後だがFeatureFreeze前である」⁠Ubuntu側に存在しない,または存在していてもUbuntu側で変更が施されていないパッケージである(バージョン番号に"0ubuntu-*"といった文字列が含まれていない)⁠といった条件が整っている場合,比較的簡単にSyncRequestできます。GoogleCLも手続きが進んでいます
注2
Ubuntu 10.04 LTSで利用できるpython-gdata 1.2.4-0ubuntu2では,Google Docs内のドキュメントの取得,編集,いくつかの形式のアップロードには対応していません。10.10用のパッケージをそのまま使ってしまう方法も紹介されていますが,Google Docsを使わない場合には,バージョンを上げる必要はありません。

GoogleCLの使い方

googleコマンドの後にサービス名,タスク,オプションをつけて実行します。例えば,Bloggerから過去の投稿のタイトルとURLのリストを取得するには次のように実行します。

$ google blogger list title,url-site

ただし,GoogleCLを初めて使う場合は,アカウントの登録と権限の付与が必要です。コマンドを実行すると,"Please specify user"というメッセージでGoogleアカウント名の入力を求められるので,"example@gmail.com"のように入力してエンターを押します。すると,次のようなメッセージが表示され,メッセージ中のURLがブラウザで開かれ,許可を求める画面が表示されるので,⁠アクセスを許可」をクリックします図1)⁠

Please log in and/or grant access via your browser at https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=XXXX&hd=default then hit enter.

図1 GoogleCLに対する権限の付与はブラウザを利用する。

図1 GoogleCLに対する権限の付与はブラウザを利用する。

端末に戻りエンターキーを押すと,次のようなリストが取得できます注3)⁠

梅雨明けはまだでしょうか,http://example.com/2010/07/rain.html
夏休みはもうすぐ,http://example.com/2010/07/summer.html

また,次のようにしてブログに投稿できます。

$ google blogger post --draft --title "Test Post" 'Hello, world!' --tags "googlecl"

この例ではタイトルを"Test Post",本文を"Hello, world!",さらに"googlecl"というタグを付けて,下書き状態で投稿しています。

他にも,次のようにしてGmailに登録している連絡先の一覧をCSVファイルとして保存するといったこともできます。

$ google contacts list name,email > contacts.csv
注3
Bloggerで複数のブログを持っている場合,ブログタイトルのリストが表示され番号でブログを指定するよう求められます。

Webインターフェースでは不可能なこともできる

ここまで紹介してきた操作は,Googleが提供している各サービスのWebインターフェースからも利用できるものです。あえてコマンドラインを使う理由は,デスクトップ環境がなくても操作できる,シェルスクリプトなどで利用できるといったところでしょう。そういった利点だけでなく,GoogleCLは通常のWebインターフェースでは不可能だった操作ができます。

例えば,PicasaウェブアルバムはWebインターフェースでは,1枚ずつしか写真をダウンロードできません図2)⁠Picasaのソフトウェアをインストールし,アルバムの同期機能を使う以外に,アルバム単位で写真をまとめてダウンロードする簡単な方法がありませんでした。

図2 Webでは写真を1枚開いたときにだけ,ダウンロードできるようになっている。

図2 Webでは写真を1枚開いたときにだけ,ダウンロードできるようになっている。

GoogleCLでは,次のようにアルバムのタイトルを指定して実行するだけで,目的のディレクトリにアルバムと同名のディレクトリが作成され,アルバム内の写真をすべてダウンロードできます。

$ google picasa get --title "Test" ~/ダウンロード/

設定ファイルを編集して詳細に設定する

GoogleCLの設定ファイルを編集すると,コマンドラインからは設定できない項目も指定できます。設定ファイルはコマンド実行時に指定できるので,ここでは元のファイルをコピーしたものを編集して使用します。

まずは,次のコマンドで設定ファイルをコピーします。

$ cp ~/.googlecl/config ~/.googlecl/config_alt

コピーしたファイルをエディタで開きます。

$ gedit ~/.googlecl/config_alt

例として,Picasaで作成するアルバムを「限定公開(URLを知る人のみアクセスできる)⁠とする設定にします。該当箇所を次のように書き換えて保存します。

[PICASA]
access = private

次のように設定ファイルを指定して実行すると,限定公開のアルバムを作成できます。

$ google picasa create --title "Test" --config ~/.googlecl/config_alt ~/ピクチャ/sample.jpg

以上のように,GoogleCLを使えば,Googleが提供しているAPIの知識がなくても,コマンドラインから手軽にGoogleサービスを利用できます。コマンドの実行例詳細なマニュアル設定ファイルに記述できる項目といった資料を参照して,コマンドラインからの操作を活用してください。

著者プロフィール

村田信人(むらたのぶと)

Ubuntu Japanese Teamメンバー。Ubuntuオフラインミーティングに参加するうちにUbuntu Japanese Teamの活動に興味を持ち,2009年8月に加入。

コメント

コメントの記入