Ubuntu Weekly Recipe
第130回 GoogleCLでコマンドラインからGoogleのサービスを利用する
先月,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.
端末に戻りエンターキーを押すと,次のようなリストが取得できます(注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のソフトウェアをインストールし,アルバムの同期機能を使う以外に,アルバム単位で写真をまとめてダウンロードする簡単な方法がありませんでした。
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 Weekly Recipe
- 第209回 Unityでニコニコ動画を検索する
- 第208回 Ubuntu 10.04/Xubuntu 11.10でxrdpを使用する
- 第207回 The Ubuntu TV Show
- 第206回 UbuntuとGIMXでPlayStation3を楽しもう
- 第205回 LibreOfficeのPDFエクスポート機能を活用する
- 第204回 Unity Lens 10番勝負
- 第203回 Ubuntu 11.10でGNOME Shellの拡張機能を使用する
- 第202回 ladishでJACKサウンドサーバー環境のセッションを管理する
- 第201回 Arkoseを使ってサンドボックスでアプリケーションを動かす
- 第200回 [連載200回記念特別企画]Ubuntuで究極の文字入力環境を模索する
- 2011年9月2日号 Ubuntu 11.10デスクトッププレビュー・FCM#52・UWN#230・ApacheとFirefoxのセキュリティアップデート
- 2011年8月26日号 Ubuntu 11.10のBetaとリビルドテスト・App Developer Week・ARM対応Ubuntu Server
- 2011年8月12日号 Software CenterのGTK3版・XapianのCJK対応・OSC名古屋・Upstartの今後・UWN#227
- 2011年7月22日号 Messasing Menu・bootmail+rootsign・Developer Weekのまとめ・Ubuntu Cloud Days
- 2011年7月15日号 OSC Kansai/Kyoto・スクロールバーの改良・GTK3版Gwibber・Emsemble formula

