Ubuntu Weekly Recipe

第187回Ubuntuで使うTwitterクライアント(1)EmacsでTwitter

本連載第71回Twitterクライアント7種徹底レビューでは、Ubuntuで使えるTwitterクライアント7種類を紹介しました。しかしそれから2年以上が経過し、Twitterの仕様変更をはじめ、Twitterをとりまく状況は大きく変化しています。そこで今週のレシピは、昨今の事情にあわせた(?)Twitterクライアントとして、twittering-modeを紹介ます。

図1  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)

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 初回認証時にマスターパスワードを設定する
図2 初回認証時にマスターパスワードを設定する
マスターパスワードを用いてトークンを保護する
(setq twittering-use-master-password t)
(setq twittering-private-info-file "/home/mizuno/.emacs.d/elisp/twittering/twittering-mode.gpg") [3]

この設定を行なっておくと、初回認証時にマスターパスワードの設定が要求されます。以後はtwittering-mode起動時にマスターパスワードを入力するだけで、必要なトークンが読み込まれます。

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中に)F4tinyurlでカーソル下にある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を有効にした状態
図3 twittering-jojo-modeを有効にした状態 図3 twittering-jojo-modeを有効にした状態

次週予告

これだけで一通りの操作ができるようになったと思いますが、デフォルト状態ではまだまだ使いやすいとは言えないでしょう。来週はtiwttering-modeの挙動をカスタマイズする方法を紹介します。

おすすめ記事

記事・ニュース一覧