Alfred の AlfredTweet をなんとか動かした
Mac を使っていると Alfred はとても便利。というか個人的には必須ツールと思っている。
無料で使っていても十分便利なのだけど、Powerpack に課金すると更に便利になる。
というのも Powerpack では Workflows がアンロックされるからだ。
Workflows はスクリプトにより Alfred を機能拡張できる仕組みで、自分で新しい Workflow を作成できるし、他のユーザが作成して公開しているものを利用できる。
例えば、Alfredtweet をインストールすると Alfred の UI から直接ツイートできる。
しかし、Alfredtweet は PHP で実装されているため、Monterey で PHP が OS に含まれないようになって動かなくなって残念に思っていた。
Alfred 4.6 で Alfred 自体が homebrew でインストールした PHP のパスも検知するようになった。
それによって多くの PHP を使った workflow は何にもしなくても動くようになったが、Alfredtweet はダメだった。
最初に Twitter アカウントの認証設定があるのだけどそれが動かないのでどうしようもない。
どうも作者もメンテを放棄している様子だし、別の代替を探してみた1のだけど見つけられなかった。
諦めていたのだけど、少し変更して動かせたのでメモしておく。
Alfredtweet のインストール
インストール自体は普通に AlfredTweet | Packal からダウンロードした alfredtweet.alfredworkflow を Alfred で開くだけ。
Twitterのアカウント認証設定
ツイートするためには Twitter アカウント認証を通す必要がある。
Alfred で AlfredTweet
コマンドを実行するとできるはずなのだけど、動かない。
ログを見ると php
コマンドが見つからないとエラーが出ている。
Workflows 管理画面で AlfredTweet を開いて、次のワークフローブロックをダブルクリックで開く。
次のダイアログが開く。動かない原因は、ここに直書きされている php
コマンドらしい。
これを次の様に Homebrew でインストールしたフルパスに書き換えてやる。
書き換えたら「save」ボタンで閉じる。
Alfredtweet のアカウント設定
上記の作業後、Alfred を開いて AlfredTweet
とコマンドする。
すると以前の様にブラウザで次の認証ページが開いて Twitter アカウントとの連携ができるようになる。
Twitter で権限認可したら遷移するページにトークンが表示される。再び Alfred を開いて AlfredTweet
の引数にトークンを渡して実行すると AlfredTweet にアカウント設定できる。
はずなのだが、ここでも動かない。 ログを見るとディレクトリが見つからないというエラーが出ているので、該当のディレクトリを次の様に作ってやる。
mkdir -p "~/Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data"
ふう、これでなんとか動いたようだ。 なにやら次のようなメッセージが通知されたのだけど、これは無視しても OK だった。
tweet
コマンドの修正
さてと、試しにツイートしてみるかと Alfred を開いて tweet
コマンドを使ってみるとまだエラーで動かない。
ログを確認すると次の箇所が悪いらしい。
開いてみると案の定、php
コマンドを使おうとしている。
それを次の様に書き換えるとツイートできるようになった。
他のコマンドも動かない
Alfredtweet には他にも follow
/unfollow
や block
/unblock
などの操作もできる。
これらを開いてみると、書かれている Script は PHP なのに Language には /bin/bash
が設定されているので、/opt/homebrew/bin/php
に変更すると動くようになる。
他にタイムラインやメンション、リストなどを Alfred 上で確認するコマンドもあるのだけど、それらはデータは取ってこれているようだけど、レスポンスを正しくパースできなくなて目的通りには動かない。
まあ、ツイート以外は Twitter アプリ上で操作するほうが便利だと思うのでこれらのコマンドの不具合は放置することした。
なんとか動いたが、そのうち動かなくなるのだろうな。 まあ、ツイート自体もそんなに頻繁にする方ではないのだけど。
-
alfred-twitter-toolkitというのを見つけたのだけど、つぶやくことはできないっぽい。作者自ら'AlfredTweet is far more powerful' って書いてるし。↩