普段プライベートや社外ではfacebookチャット(messenger)を使っているけど、社内にはオンプレミスのシャットサービスが立っている。社内のチャットへのアクセスはインターネット側からはできなくて不便。かといって全部facebookチャットに乗り換えるのも色々と大変。
というニッチなニーズに対して、そうだ両者の間でメッセージを双方向でリレーさせればいいじゃない、ということでbotを作りました。会社のファイヤウォールに穴を開けたりする必要なく、社内から外部への接続性があれば利用できます。
環境
- 社内にletschatサーバが立っている。
- letschatは少人数グループ用のオンプレミスのチャットソフトウェアです。
- 社内のletschatサーバにアクセスできるサーバ上でこのbotを動かします。そこから外部(インターネット)にアクセスできる必要があります。
- facebook, letschatそれぞれにbot専用のアカウントを用意したほうが良いでしょう。
実装面
- nodejsで実装しています。
- letschatとの連携部分はhubot-lets-chatを使っています。
- facebookとの連携部分は、昨今facebook側のAPI変更などもありましたが、XMPPなどを使わないfacebook-chat-apiを使っています。
- 原因まで終えていませんが、主にfacebook連携側がエラーを吐き続けることがあるので、エラーが発生した場合にはbot自体を終了させるようにしています。foreverを使ってこのbotを起動するのがオススメです。
使い方
- githubで公開しています。face-lets-bot
制限事項
- facebook-chat-api側の制約により、アップロード画像のリレーには対応していません。