BitlBeeで各種SNSを集約する

提供: Akionux-wiki
Share/Save/Bookmark
移動先: 案内検索

概要

BitlBeeはXMPP, GNUSocial, Twitter, Facebookなどの各種SNSのアカウントを登録すると、それらSNSのやりとりを仲介するIRCサーバとして作動してくれる。つまり、各種SNSを集約して使うことができる。 詳しい使い方は[1]を参照。

テスト環境

Slackware Linux x86_64 14.1

インストール

SlackBuildのGitリポジトリ内のnetwork/bitlbeeを使った。 SlackBuildを実行する前に、ユーザとグループを作成する

sudo /usr/sbin/groupadd -g 250 bitlbee
sudo /usr/sbin/useradd -u 250 -d /var/lib/bitlbee -s /bin/false -g bitlbee bitlbee

そしていつもの通りSlackBuildの実行と、生成したパッケージのインストール

chmod +x bitlbee.SlackBuild
sudo ./bitlbee.SlackBuild
sudo /sbin/installpkg /tmp/bitlbee-3.4.2-x86_64-1_SBo.tgz

/etc/rc.d/rc.localに以下のように追記して、マシン起動時にデーモンを起動させるようにする

## Start bitlbee
if [ -x /etc/rc.d/rc.bitlbee ]; then
  /etc/rc.d/rc.bitlbee start
fi

設定

設定は/etc/bitlbee/bitlbee.confを編集する。

とりあえずBitlBeeサーバに入るのにパスワードをかけておくには、

AuthMode = Closed
AuthPassword = <password>

という行を入れておくと良いだろう[2]

接続

まず、サーバを起動させる

sudo /etc/rc.d/rc.bitlbee start

そして好きなIRCクライアントから、サーバに接続する。デフォルトのポートは6667。

接続すると、&bitlbeeという場所に入り、ユーザ'root'が常駐しているはず。 ここでコマンドを入力すると、このrootが返答してくれるようになっている。

Jabber

Jabberアカウントの追加

account add jabber <jid>

パスワードは表示してほしくないので、/OPERコマンドを使う

/OPER <jid> <password>

アカウントに繋ぐ

account on

StatusNet

StatusNetまたはGNUsocialアカウントの追加[3]

account add identica <handle>
/OPER <handle> <password>
account identica set oauth false
account identica set base_url 'https://example.com/api/'
account identica set password <password>
account identica on

これだとパスワードを表示してしまうのが不安だが、他に方法が見つからなかった。

下記のTwitterのコマンドモードが同様に使えるようである。

Twitter

詳しくは[4]を参照。

まず、アカウントを追加する

account add twitter <user_id>
account on

twitter_<user_id>というプライベートチャンネルが開き、

To finish OAuth authentication, please visit https://api.twitter.com/oauth/authorize?oauth_token=**************************&oauth_token_secret=***************************&oauth_callback_confirmed=true and respond with the resulting PIN code.

というようなのが来るので、このリンクをブラウザで開いて、BitlBeeのアプリ連帯を許可する。 PINコードを先ほどのtwitter_<user_id>のプライベートチャンネルで送信する。 すると、(#twitter_<user_id>)というチャネルが開き、タイムラインが流れ始める。

(#twitter_<user_id>)で、以下のコマンドでダイレクトメッセージが送れる

/msg <twitter_id> test

また、&bitlbeeチャンネルから以下のコマンドでフォローすることもできる

add twitter <twitter_id>

コマンドモード

twitterについては、commandsという変数でコマンドの扱いを設定することができる。

account <num> set commands <strict/true/false>

<num>はtwitterアカウントのaccount listで表示される0,1,2,...の番号である。 <strict/true/false>の部分には、以下のいずれかを選択する

  • strict
コマンドのみ受け付ける。
  • offまたはfalse
コマンドを無効にする。つまり、全て投稿として扱われる。
  • onまたはtrue
コマンドの形で入力すればコマンドを実行し、そうでない場合は投稿になる。

コマンドは以下のものがある:

  • post: このコマンドに続くテキストを投稿する。
  • undo [id]: ツイートの投稿など、直前の操作またはidで指定された操作を取り消す。
  • favourite [id|username]: idまたはusernameに属するツイートをいいねする。
  • follow [username]: usernameで与えられたユーザをフォローする。
  • unfollow [username]: usernameで与えられたユーザをアンフォローする。
  • report or spam [username|id]: usernameまたはidで与えられたユーザをスパム報告する。
  • rt [id|username]: idで与えられたツイートまたはusernameで与えられたユーザの最新のツイートをリツイートする。
  • reply [id|username]: idで与えられたツイートまたはusernameで与えられたユーザの最新のツイートに返信する。

Facebook

[5]を参照。

ダウンロードして、ビルド・インストール

git clone https://github.com/jgeboski/bitlbee-facebook.git
cd bitlbee-facebook
./autogen.sh
make
sudo make install

一応bitlbeeを再起動

sudo /etc/rc.d/rc.bitlbee restart

IRCクライアントから以下のようにコマンドを実行。ただし、ここでのパスワードはセキュリティページで生成されたアプリパスワードというのを使うのがセキュリティ上良い。

account add facebook <email> <password>

接続する

account facebook on

なお、デフォルトではニックネームはASCIIに制限されていて、日本語の名前のユーザ名がうまく表示できない。 UTF-8のニックネームを有効にすることで表示できる。 UTF-8のニックネームを有効にするには、&bitlbeeチャンネルから、

set utf8_nicks true

を実行する。

操作

Twitterの特定のユーザまたはキーワードを表示する

Twitterのユーザ名<username>だけを表示するチャンネル#userchannelを作成(bitlbeeコマンド)

chat add twitter follow:<username> #userchannel

そのチャンネルに参加(IRCコマンド)

/join #userchannel

チャンネル#userchannelから退室する(IRCコマンド)

/leave #userchannel

Bitlbeeのチャンネル#userchannelを削除(Bitlbeeコマンド、番号はchannel listで確認)

channel 3 del

Twitterの特定のキーワードを含むツイートを表示するチャンネルを作成するにはtrackというのを使う

chat add twitter track:<word or #hashtag> #trackchannel

BitlBeeのアカウント管理

ユーザ登録

毎回アカウントのログインをしなくて良いように、BitlBeeでユーザ登録できる。 &bitlbeeチャンネルからregisterを実行

register

/OPERコマンドでユーザ名とパスワードを入力

/OPER <user_name> <password>

ユーザ認証

接続したときにユーザの認証をするには、 &bitlbeeチャンネルからidentifyを実行

identify

/OPERコマンドでユーザ名とパスワードを入力

/OPER <user_name> <password>

ユーザ削除

&bitlbeeチャンネルからdropを実行

drop

/OPERコマンドでユーザ名とパスワードを入力

/OPER <user_name> <password>

References

  1. BitlBee User Guide https://www.bitlbee.org/user-guide.html
  2. How to install BitlBee (IRC to chat and Twitter gateway) on Ubuntu – Subfictional Studios https://subfictional.com/2013/05/09/how-to-install-bitlbee-irc-to-chat-and-twitter-gateway-on-ubuntu/
  3. HowtoStatusNet - BitlBee Wiki https://wiki.bitlbee.org/HowtoStatusNet
  4. HowtoTwitter - BitlBee Wiki https://wiki.bitlbee.org/HowtoTwitter
  5. HowtoFacebookMQTT - BitlBee Wiki https://wiki.bitlbee.org/HowtoFacebookMQTT