本連載第71回「Twitterクライアント7種徹底レビュー 」では、Ubuntuで使えるTwitterクライアント7種類を紹介しました。しかしそれから2年以上が経過し、Twitterの仕様変更をはじめ、Twitterをとりまく状況は大きく変化しています。そこで今週のレシピは、昨今の事情にあわせた(?)Twitterクライアントとして、twittering-modeを紹介ます。
図1 twittering-modeの画面
EmacsでTwitterを楽しもう
Twitterのようなテキストの読み書きといえば、当然Emacsの出番ですよね。EmacsでTwitterをする時の定番が、本連載73回 でも軽く紹介したtwittering-mode でしょう。もちろん筆者も愛用しています。
twittering-modeをインストールするには、プロジェクトのページからリリース版のアーカイブを取得して展開するか、gitリポジトリから開発版をチェックアウトします。そうして得られるtwittering-mode.elを、ロードパスの通ったディレクトリに配置して、必要であればバイトコンパイルしてください。また、Ubuntu 11.10にはtwittering-modeパッケージが用意されていますので、apt-getなどからインストールすることが可能になります[1] 。
twittering-mode.elがインストールできたら、.emacsに設定を追記しておきます。
gitをインストールしてリポジトリから開発版をチェックアウトする
$ sudo apt-get install git
$ git clone git://github.com/hayamiz/twittering-mode.git
Ubuntu 11.10ならば、パッケージからインストールができる
$ sudo apt-get install twittering-mode
.emacsに以下を追記する
(require 'twittering-mode nil t)
[1] ただし本稿執筆時点ではバージョン1.0.0+git20110327-1と、少々古いパッケージになっています。DebianのBTSには既にアップデートの要望が上がっており 、メンテナであるTakayaさんも認識しておられるので、近いうちにアップデートされるでしょう。sidにパッケージが入り次第、筆者がUbuntuにsync requestする予定です。Syncが間に合えば、Ubuntu 11.10では2.0.0が使えるようになります。
OAuthを使った認証とトークンの保存
本連載73回では、.emacsにユーザ名とパスワードを記述して認証を行う方法を紹介しました。これはすべてのクライアントアプリに言えることですが、現在ではTwitterの仕様変更によりベーシック認証は使用することができません。そこで認証にはxAuthかOAuthを利用する必要があるのですが、xAuthを利用して認証を行なったクライアントアプリからは、ダイレクトメッセージ機能を利用することができなくなりました。そのため現実問題として、認証にはOAuthを利用するしかないでしょう。OAuthを利用するには、twittering-auth-methodにoauthを設定します[2] 。
認証にOAuthを利用する
(setq twittering-auth-method 'oauth)
twittering-modeを起動すると、指定されたブラウザでアプリケーション認証用のページを開きます。ユーザ名とパスワードを入力すれば、認証用のPINコードが取得できます。取得したPINコードをミニバッファへ正しく入力して認証を完了してください。
さて、デフォルトのtwittering-modeは認証で得たトークンを保存しません。つまり再起動する度にブラウザを開いてOAuth認証を実行する必要があり、非常に面倒です。ところが、twittering-modeが得たアクセストークンはtwittering-oauth-access-token-alistに保存されています。試しにM-x describe-variableを実行してみましょう。英数字の混った文字列がトークンとして保存されているのがわかるはずです。つまりこの値を保存しておき、.emacsで設定してやれば二回目以降の認証をパスすることが可能になります。
M-x describe-variableを実行して、twittering-oauth-access-token-alistの内容を調べる
twittering-oauth-access-token-alist is a variable defined in `twittering-mode.el'.
Its value is
(("oauth_token" . "自分のユーザID-英数字の列")
("oauth_token_secret" . "英数字の列")
("user_id" . "自分のユーザID")
("screen_name" . "自分のスクリーンネーム"))
.emacsでトークンを設定する例(非推奨)
(setq twittering-oauth-access-token-alist
'(("oauth_token" . "トークン文字列")
("oauth_token_secret" . "トークン文字列")
("user_id" . "自分のユーザID")
("screen_name" . "自分のスクリーンネーム")))
しかしこのトークンを使えば、そのアカウントを使ってTwitterにアクセスできてしまうのですから、.emacsにプレーンなテキストで記述しておくというのは不用心でしょう。そこで利用したいのが、トークンを暗号化して別ファイルに保存する機能です。この機能を有効にするには、twittering-use-master-passwordにnil以外の値を設定します。暗号化にはEasyPGかalpaca.elが使用できますが、Emacs23ではEasyPGが標準搭載されていますので、EasyPGを使うのがよいでしょう。もちろん、追加のパッケージインストールなどは必要ありません。
図2 初回認証時にマスターパスワードを設定する
マスターパスワードを用いてトークンを保護する
(setq twittering-use-master-password t)
(setq twittering-private-info-file "/home/mizuno/.emacs.d/elisp/twittering/twittering-mode.gpg") [3]
この設定を行なっておくと、初回認証時にマスターパスワードの設定が要求されます。以後はtwittering-mode起動時にマスターパスワードを入力するだけで、必要なトークンが読み込まれます。
[2] 実はデフォルトでoauthが指定されており、このように明示的な設定を行なわなくてもOAuthによる認証を試みます。ですが筆者は以前ここでxauthを指定していた名残で、明示的にoauthを指定しています。
twittering-modeの使い方
M-x twitでtwittering-modeを起動します。u(またはC-c C-s)でツイートを作成するeditモードになり、ウィンドウが上下に分割されて、*twittering-edit*バッファが開きます。edit中にC-c C-cで、編集したツイートを投稿します。
twittering-modeでよく使う、代表的なキーバインドは以下の通りです。
表 twittering-modeの操作
j 前(古い)のツイートへ移動
k 次(新しい)のツイートへ移動
n カーソルがあるユーザの、前のツイートへ移動
p カーソルがあるユーザの、次のツイートへ移動
H バッファの先頭へ移動
G バッファの末尾へ移動
u ツイートを作成するeditモードへ移行
C-m カーソルがあるツイートへのリプライを作成するeditモードへ移行
d ダイレクトメッセージを作成するeditモードへ移行
C-c C-m カーソルがあるツイートを非公式RTするeditモードへ移行
C-u C-c C-m カーソルがあるツイートを公式RT
(edit中に)F4 tinyurlでカーソル下にあるURLを短縮
(edit中に)C-c C-c ツイートを投稿
(edit中に)C-c C-k 編集中のツイートを破棄
C-c D カーソルがある自分のツイートを削除
r カーソルがあるツイートに関連するツイートを表示
i アイコンの表示/非表示をトグル
a タイムラインの自動更新ON/OFFをトグル
t プロキシのON/OFFをトグル
C-c C-t デフォルトで付加するハッシュタグを設定
C-c C-d ダイレクトメッセージを表示
C-c C-r 自分へのMentionsを表示
C-c C-u 自分のツイートを表示
v カーソルがあるユーザのタイムラインを表示
f 次のバッファを表示
b 前のバッファを表示
q バッファを閉じる
L リストを選択
g タイムラインを更新
twittering-jojo-modeを使う
twittering-modeにはtwittring-jojo-modeというマイナーモードが搭載されています。有効にするにはM-x twittering-jojo-modeを実行してください。有効になるとモードラインに「jojo」と表示されます。
この状態でタイムラインに "次にお前は「XXXX」と言う!" というツイートが流れてくると、jojo-modeが自動的に "XXXX はっ!?" というMentionを発言した人宛てに飛ばします。波紋の能力に目覚めた人、スタンド使いの人などにオススメの機能です。
図3 twittering-jojo-modeを有効にした状態
次週予告
これだけで一通りの操作ができるようになったと思いますが、デフォルト状態ではまだまだ使いやすいとは言えないでしょう。来週はtiwttering-modeの挙動をカスタマイズする方法を紹介します。