Facebook IRC Gatewayの導入と解説Facebook IRC Gatewayの導入と解説

<< | コメント(2) | トラックバック(0) このエントリーを含むはてなブックマーク >>

lunaryueでも出来るfig導入簡単解説記事まだですか?

と言われたので早めに書こうと思います。


Facebook IRC Gatewayは、しゅにたんをメインに二郎erな面々が開発したFacebookをIRCで見たり投稿したり出来るようにするgatewayです。

まぁTwitterIRCGatewayのFacebook版って感じですね。


まだファーストコミットから4日という段階ですが、かなりの勢いで開発されており既に実用にたえるレベル(ってか超便利)


rubyのある程度新しいのが動く環境なら多分どこでも動かせるんじゃないかと思うけど、僕はrubyの事をよく知らない。

基本的な導入に関しては、本家のreadmeに英語と日本語両方で記述されているので、それに沿えば何とかなります。

ただ、俺はrubyを殆ど触ってなかったので、その準備段階で躓いたのでメモとして書いておきます。


って事でPitの設定やら自分用のアプリケーションの登録などの解説が必要だと思って書く事を決めたのだけど、
書きはじめる前にシステムが更新されて、その辺が不要になった為、readmeと大差ない記事になってしまった、、、

※現在開発が日夜続けられているので、この記事は一瞬で古くなる可能性があります。

ただし、できるだけ追随できるよう今後も編集は続けていく予定です。



必要なもの

  • Ruby 1.8.7 以上が動く環境(1.9.2推奨)
  • rubygems
  • Bundler
  • git
  • sqlite3
  • 転んでも泣かない心


※5/17の更新によりsqlite3が必須となりました、御注意ください。


動作環境の構築

rubyとrubygemsとgitの導入等は他の記事に譲ります。

ググりましょうカス。


bundlerをいれていない場合は

gem install bundler

を実行してbundlerを導入してください。

bundlerとは実行に必要なgemパッケージを一括して導入する為のツールです。


※5/17の更新によりsqlite3が必要となった為追記します。

DebianやUbuntuの人は

apt-get install sqlite3 libsqlite3-dev

とかすればいいのかな。

yum環境の人は、yumから最新のが入らないのでソースインストールする必要があるかも。

僕は以下のサイトを参考にしました。

CentOSにSQLite3.7.4をインストール - 適当に生きてパッタリ死にたい


パッケージのダウンロードとインストール

Facebook IRC gawayの開発はgitベースで行なわれています。

リポジトリはgithubにあります。

shunirr/FacebookIrcGateway - GitHub

FacebookIrcGatewayを導入したいディレクトリにて

git clone https://github.com/shunirr/FacebookIrcGateway.git

とする事により、FacebookIrcGatewayというディレクトリが作成され、その中に必要なファイルを一通りダウンロードできます。

※github.comのSSL証明証に変更があった関係で、一部環境下で正常にgit cloneが通らない場合があります。 詳しくは@rimd2rがコメントしてくれているので、そちらを参照してください。


今後、本体に更新があった場合は作成されたディレクトリの中で

git pull

とする事で、最新のプログラムに更新する事ができます。

※開発中のプロジェクトであり安定版とはいい難い為、更新する事により一部正常に動作しない時もあります。


ここからは基本的に本家のreadmeに記載されている内容になります。


動作に必要なgemパッケージをインストールします。

作成されたFacebookIrcGatewayディレクトリの中で

bundle install

と実行してください。

少し時間がかかるので、少し動きがなくてもちょっと放置して待ちましょう、数分で一通りのパッケージがインストールされます。


初期設定

ここから設定に入ります。

基本的にはデフォルトの設定のままで動くので別段書き変えなどを行なう必要はありませんが、

アプリケーションの許可だけは最初にやらねばなりません。


まずsetup用のプログラムを実行します。

bundle exec ruby setup.rb

これを実行すると以下のような質問で、使用するFacebookアプリケーションのID(以下 App ID)の入力を求められます。

Input your Application ID: (Press enter, if use default Application ID):

ここでApp IDとApp Secretを設定する事で、どのアプリケーションを使うのか決定できるわけですが、

何も入力しない場合デフォルトのfigというアプリケーションが使われるので、難しい事が分からない人はそれで問題ないでしょう。

なので上記の質問については、何も入力せずにEnterを押します。


するとURLが表示された後にまた別の質問が表示されます。

http://goo.gl/xxxxx

---
Please access this URL, and Allow this Application, and Paste new URL:

このコンソールに表示されるURLにアクセスします。

※上記URLの『xxxxx』の部分が違うものになる為、ちゃんと表示されたURLにアクセスしてください。


すると、Facebookのアプリケーションの許可のページが表示されます。

『許可する』をクリックしてください。

すると『Success』とだけ書かれたページにリダイレクトされます。

こちらのSuccessページのURLをコピーしてください。(かなり長いです。


このコピーしたURLを、先程の『Paste new URL:』と記載されていたコンソールに貼り付けてEnterを押します。

『Complete Setup!!』と表示されて設定が完了します。


アプリケーションの起動、接続。

以下のコマンドを実行します。

bundle exec ruby fig.rb

実行されます。


デフォルトでは16822番portが使用されます。

その辺の設定を変更したい場合は『config.yaml.sample』というファイルを『config.yaml』という形にコピーして、中身を書き変えてください。


各種IRCクライアントやtiarra等から接続します。

基本的にFacebookとのやりとりは設定したトークンを元に行なわれる為、ログインId等は適当でも問題ないと思います。

文字コードはUTF8に設定してください。


以上ですお疲れさまでした。

快適なFIGライフを送ってください。


typable mapやusername-alias等の便利機能があるので、そちらの解説もしたいのだけど

それに関しては、今後本家のwikiを編集していく形になると思います。


オマケ:オレオレappの使用

オマケというか、元々はこれをやらないと動かなかったので、この記事のメインになる筈だった部分です。

オレオレアプリケーションを登録すると、発言元のアプリケーション部分を任意のものにできます。

投稿時間の所に投稿元アプリケーションとアイコンが出ますが、そこが独自のものに変わります。


個人的にはsecretが公開されたアプリケーションにアクセス許可を与えるのは好ましくないと思っているので、基本的には自前のアプリケーションを登録してほしくはある。


では導入。

アプリケーションの登録は以下から行ないます。

facebook - Developer

ここで、上部の『+Set Up New App』という所をクリックするとアプリケーションを追加できます。

アプリケーション登録にはアカウントの認証を行なう必要があるので、携帯によるアクティベーションかクレジットカードの登録が行います。

てっとり早いのは携帯の登録なのですが、誘導される登録ページには日本のキャリアを設定する個所がありません。


同じくマイアカウントの設定項目『お知らせ』に『ケータイメールアドレスにお知らせを送信する。』というリンクがあるのでそちらをクリックします。

すると日本のキャリアも選択可能な画面が表示されます。

ここでメールアドレスを登録すると、登録した携帯アドレスに確認用コードが送付されます。

それをこの送信画面の後に出るコードの確認画面に入力すると認証が完了します。


さて更めてアプリケーションの作成に戻る。

名前を決めて規約を読んで同意します。

この後、CAPTCHAがあって、その後項目の編集画面に遷移します。


ちょっとばかしデカいので断片的なSSに。

ここのアイコンに設定したものが、発言の左下に表示される事になります。


編集を完了すると、アプリケーション毎のページに遷移します。


消してますけど、ここに書かれているアプリIDが、setup.rbで入力を求められるApplication IDであり、

その後に求められるApplication secretが"アプリの秘訣"にあたります。


作成したアプリケーションを使うには、setup.rbを再度実行し、それらの質問個所で上記の2項目を設定する必要があります。

それ以外は特に特殊な設定を行なう必要はなく、手順通りにfig.rbを実行するだけで適用する事ができます。


正常に動作しない場合


・起動時に『Received HTTP 400 during request.』というのが含まれるエラーが表示される。

アプリケーションが正常に許可されていない、もしくは設定したURL入力で設定したtoken(code)が既に古くなっている可能性があります。

setupをもう一度やりなおして、としか言えない。

回りにそれで動くようになった人もいれば、何回やっても動かない人もいるので興味深いですね。


・fig.rb実行時にエディタが起動される。

setup.rb時に正常に設定ファイルが保存されていない可能性が高いです。

figはpitというものを使って認証回りの設定を保存しており、それらは~/.pit/default.yamlに入っているので確認してみましょう。


ファイルの書き込み権限などが存在しない場合に発生する事があるのかな。

-------------------------------


状況によって症状はまちまちだと思うので、それぞれ対処方を書くから、分からないエラーが出てたら教えてくれるといいかも。

同じエラーがループで発生している所よりも、起動直後に最初に出てるエラーとかが怪しい。

『#<NoMethodError: undefined method `me' for nil:NilClass>』が繰り返し出るとかは、認証が正常に通っていない場合が多いです。

起動直後に400エラー的なものが返っているエラーメッセージが出ていませんか?

トラックバック(0)

トラックバックURL: http://exe.tyo.ro/mt/mt-tb.cgi/1155

コメント(2)

CentOS 5.4で導入してみました。

git cloneですが、2011年5月末以降、github.comにはEV SSL証明書(DigiCert HighAssurance EV CA-1)が使われるようになった影響でSSL Problem errorがでるようになってます。

Centで躓いてるひとは、ca-bundle.crtを更新することでこの問題を回避できます。
curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

BundleInstallもこの方法で治るかな。

コメントする

2014年10月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

月別 アーカイブ

2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年