twittering-modeでTwitterで説明したとおり、Mac上のCocoa Emacsではtwittering-modeを用いてtweetしています。
久しくupdateしていなかったため、思い立ったがなんとやら、git先端からupdateして、認証方式もOAuthに切り替えてみようとしたら、ちょっとはまりました。
GnuPGがなかった
まず、
(install-elisp "http://github.com/hayamiz/twittering-mode/raw/master/twittering-mode.el")
をevalしてtwittering-modeを更新し、.emacsに下記を追加します。
(setq twittering-use-master-password t) (setq twittering-auth-method 'oauth)
そして、M-x twit
で起動すると、
"You need GnuPG and (EasyPG or alpaca.el) for master password!"
と言われてしまいました。
Emacs23ベースのCocoa Emacsを使っているのだから、EasyPGは対応しているはず…ということはGnuPGがあやしい。
M-: (executable-find "gpg")
の結果はnilが返されました。
GnuPGをMac portsでインストールします。
ターミナルで
$ sudo port install gnupg
を実行したあと、M-: (executable-find "gpg")
の結果は"/opt/local/bin/gpg"が返されました。
起動したあと
M-x twit
すると、PINコードを入手するためのURLが表示されます。
minibufferでbrowse-urlでURLを開くかと訊かれましたので、yと答え、ブラウザで「アプリを認証」をクリックして表示されたPINコードをminibufferにて入力しました。
その後、master passwordを2回入力すると無事起動できました。
Emacsを抜けて、再度、M-x twit
する際には、~/.twittering-mode.gpgとmaster passwordで認証をクリアします。
現在の.emacs
;; ;; Twitter ;; ;; (install-elisp "http://github.com/hayamiz/twittering-mode/raw/master/twittering-mode.el") ; from http://masutaka.net/chalow/2009-06-07-5.html ;; (require 'twittering-mode) (setq twittering-use-master-password t) (setq twittering-auth-method 'oauth) (setq twittering-username "atauky") (setq twittering-timer-interval 75) (setq twittering-convert-fix-size 48) (setq twittering-update-status-function 'twittering-update-status-from-pop-up-buffer) (setq twittering-icon-mode t) (setq twittering-scroll-mode nil) (setq twittering-edit-skeleton 'inherit-any) ;; いくつかのTLをまとめて名前をつけることができる (setq twittering-timeline-spec-alias `(("related-to" . ,(lambda (username) (if username (format ":search/to:%s OR from:%s OR @%s/" username username username) ":home"))) )) ;; 起動時に以下のリストを読みこむ (setq twittering-initial-timeline-spec-string '("$related-to(atauky)" "atauky/who-i-met" "atauky/conversationlist" "atauky/jef-united" ":direct_messages" ":home")) (add-hook 'twittering-mode-hook (lambda () (set-face-bold-p 'twittering-username-face t) (set-face-foreground 'twittering-username-face "DeepSkyBlue3") (set-face-foreground 'twittering-uri-face "gray60") (setq twittering-status-format "%i %p%s / %S:n%FOLD{%T}n%r %R [%@]") (setq twittering-retweet-format " RT @%s: %t") ;; "F"でお気に入り ;; "R"でリツイートできるようにする (define-key twittering-mode-map (kbd "F") 'twittering-favorite) (define-key twittering-mode-map (kbd "R") 'twittering-native-retweet) ;; "<"">"で先頭、最後尾にいけるように (define-key twittering-mode-map (kbd "<") (lambda () (interactive) (goto-char (point-min)))) (define-key twittering-mode-map (kbd ">") (lambda () (interactive) (goto-char (point-max)))))) ;; URL短縮サービスをj.mpに ;; YOUR_USER_IDとYOUR_API_KEYを自分のものに置き換えてください ;; from http://u.hoso.net/2010/03/twittering-mode-url-jmp-bitly.html (add-to-list 'twittering-tinyurl-services-map '(jmp . "http://api.j.mp/shorten?version=2.0.1&login=YOUR_USER_ID&apiKey=YOUR_API_KEY&format=text&longUrl=")) (setq twittering-tinyurl-service 'jmp)
日本語ハッシュタグが使えるようになっていたり、いわゆる「全員に返信」にtwittering-edit-skeletonで対応できるようになっているようなので、設定してみようと思います。