2013年09月06日
fbcmd - Facebook Command Line Interface Utility
Facebook を見るのにいちいちアプリやブラウザを起動するのも面倒。 さっとステータス確認、投稿することが出来ないものかと考えてしまうスピード・マニア、 Facebook 上のデータを機械的に収集・分析するのにブリッジ・アプリケーションを探しているデータ・マニアにオススメするのが今日ご紹介する fbcmd 。
fbcmd のインストールと設定
プロジェクト・ホームはこちら。 Twitter ならよく見かけますが、 Facebook の CLI クライアントって珍しいですよね。
GitHub - fbcmd
まずは、PHP 実行環境をインストールしましょう。 Mac OS なら必要なし。 僕は Ubuntu をメインに使っているので次のコマンドで関連パッケージをインストール。
$ sudo apt-get install php5-cli php5-curl
さあ、 fbcmd をダウンロードしましょう。 僕( Ubuntu )だったら wget で落としますが、
$ wget https://raw.github.com/dtompkins/fbcmd/master/fbcmd_update.php
Mac OS なら curl の方が良いかもしれませんね。
$ curl -O https://raw.github.com/dtompkins/fbcmd/master/fbcmd_update.php
無事 fbcmd_update.php を手に入れたら実行して初期化します。
$ php fbcmd_update.php
fbcmd update utility [version 3.0]
http://fbcmd.dtompkins.com/update
Preference file: [/home/netbuffalo/.fbcmd/prefs.php]
Software development branch: [master]
Software library destination: [/usr/local/lib/fbcmd/]
Copy script to bin dir?: [Yes]
Bin dir location: [/usr/local/bin/]
Script name: [fbcmd]
Auto-restart when necessary: [Yes]
... snip ...
指示通りインストール前に sudo 付きでもう一度 fbcmd_update.php を実行。
$ sudo php fbcmd_update.php sudo
fbcmd update utility [version 3.0]
http://fbcmd.dtompkins.com/update
最後に次のコマンドでインストール。
$ php fbcmd_update.php install
fbcmd update utility [version 3.0]
http://fbcmd.dtompkins.com/update
Update: COMPLETE!
fbcmd version: [none] --> [1.1]
Note: fbcmd_update.php is now at [/usr/local/lib/fbcmd/fbcmd_update.php]
so you can remove the old one at [/path/to/fbcmd/fbcmd_update.php]
後もう少し。 Facebook で認証してあげたらおしまい。 次のコマンドでブラウザを起動して、
$ fbcmd go access
fbcmd がデフォルトのブラウザを呼び出せたら Facebook へログイン、さらに次のコマンドでアクセス・トークンを生成します。
$ fbcmd go auth
ブラウ上で連携を許可するとトークンが表示されますよ。
このトークンを fbcmd auth で登録しましょう。
$ fbcmd auth * YOUR TOKEN *
fbcmd [v1.1] AUTH Code accepted.
Welcome to FBCMD, 鈴木 太郎!
most FBCMD commands require additional permissions.
to grant default permissions, execute: fbcmd addperm
認証に成功しましたね。 あともう一つ。 より自由に操作出来るようパーミッションを追加します。
$ fbcmd addperm
ブラウザでリクエストを承認すれば全ておしまい。
fbcmd go access 、 fbcmd go auth でブラウザが起動しないという場合は、fbcmd のみを単体で実行・出力されるメッセージに含まれる URL を直接ブラウザに入力してアクセスしましょう(それぞれ Step 1, Step 2 の URL )。
$ fbcmd
Welcome to fbcmd! [version 1.1]
This application needs to be authorized to access your facebook account.
Step 1: Allow basic (initial) access to your acount via this url:
https://www.facebook.com/dialog/oauth?client_id=xxx&redirect_uri=...
to launch this page, execute: fbcmd go access
Step 2: Generate an offline authorization code at this url:
http://www.facebook.com/code_gen.php?v=1.0&api_key=...
to launch this page, execute: fbcmd go auth
fbcmd コマンドを使った Facebook の操作方法あれこれ
自分のウォールは次のコマンドで確認出来ます。
$ fbcmd stream
結果はこう。
友人の投稿に対してコメントすることも可能。
$ fbcmd comment [post_id] 'コメント'
post_id は stream 結果の左隅にある数字を簡略的に使うか、$ fbcmd stream -sid で明示的に確認しましょう。
友人のウォールを見るなら fstream を使うのが便利。 この例では”田中 さん”の投稿だけをリストしています。
$ fbcmd fstream '田中 さん'
新規投稿だけを見るなら new オプションも付けましょう。
$ fbcmd fstream '田中 さん' new
イイネ( Like )も同じ書式。
$ fbcmd like [post_id]
ここまで覚えれば fbcmd をラッピングしたスクリプトを作って上司、先輩の投稿を片っ端から自動でイイネすることだって出来ますよ(イイネ疲れの防止に是非どうぞ)。
さて、自分が投稿するときには post を使います。
$ fbcmd post 'はじめての fbcmd'
post には3つのオプション( IMG | MP3 | FLASH )があり、画像、音楽、動画を投稿することも出来ます。
例えば画像を投稿するならこう。
$ fbcmd POST IMG '金魚' 'http://farm6.staticflickr.com/5470/9278141166_b1145b5ffb_n.jpg' 0
どれも URL が事前にわかっていないと投稿出来ないのがキズですが。
勿論、シェル上で動くわけですから動的なコマンドと組み合わせる事もできますよ。
$ fbcmd post "Mac 買いました! $(uname -rv)"
この他にもローカルにある画像ファイルを Facebook のアルバムにアップロードする addpic (ファイル指定) 、addpicd (ディレクトリ単位の一括アップロード)、ダウンロードする opics 、メールの受信トレイを確認出来る finbox など便利なオプションが沢山。
興味を持った方はこちらのコマンド・リファレンスをどうぞ。
Commands - fbcmd :: wiki
fbcmd の出力で発生する改行時の文字化けが気になったら・・・
fbcmd はターミナル(端末)の幅に合わせて出力結果の成形していますが、この際に利用している wordwrap 関数は日本語(マルチバイト)には対応しておらず自動分割が行われた際に文字化けが発生します。
[#] NAME TYPE MESSAGE
[1] 田中 さん link post FBCMNDを使えばFacebookをCLIから楽し
��よー。
ターミナル・サイズの変更では解決しない場合の対応方法は2つ。
設定ファイル( ~/.fbcmd/prefs.php )を編集して print_wrap_min_width を定義、改行されないよう大きめの値(1カラムあたりの最低文字数)を設定するか、
<?php
$fbcmdPrefs['update_branch'] = 'master';
$fbcmdPrefs['install_script_name'] = 'fbcmd';
$fbcmdPrefs['install_lib_dir'] = '/usr/local/lib/fbcmd/';
$fbcmdPrefs['install_copy_to_bin'] = '1';
$fbcmdPrefs['install_bin_dir'] = '/usr/local/bin/';
$fbcmdPrefs['install_lib_mkdir_mode'] = '0777';
$fbcmdPrefs['install_data_mkdir_mode'] = '0700';
$fbcmdPrefs['install_auto_restart'] = '1';
$fbcmdPrefs['mkdir_mode'] = '0777';
$fbcmdPrefs['print_wrap_min_width'] = '80';
?>
fbcmd の実体である /usr/local/lib/fbcmd/fbcmd.php スクリプトを編集して、wordwrap を止めるか。
#$wrapped = wordwrap($rightCol,$wrapWidth,"\n",$fbcmdPrefs['print_wrap_cut']);
$wrapWidth = 30;
$wrapped = preg_replace('/(.{'.$wrapWidth.'})/u', '${1}'."\n", $rightCol);
それでは、より楽しい FB ライフを。
(実は僕 Facebook が苦手で全然使って無いんですよね・・・)
Facebookアプリ プログラミング入門
posted with amazlet at 13.09.06
長谷川 智希
秀和システム
売り上げランキング: 25,658
秀和システム
売り上げランキング: 25,658
ネット・バカ インターネットがわたしたちの脳にしていること
posted with amazlet at 13.09.06
ニコラス・G・カー
青土社
売り上げランキング: 27,781
青土社
売り上げランキング: 27,781