Crowyがオープンソース化された→とりあえず動かし方

CrowyはHootSuiteと並んで、Web型SNSクライアントでマルチカラムなところが似てたんですが、Twitter以外にも力を入れているところがありました。Google App Engine for Pythonを使っているというのをリリース当初に聞いてました。そのCrowyがオープンソース化されると!

前向きなオープンソース化ではなくて、サービス継続困難のためになんとかしてください!というオープンソース化。ひえー!
https://github.com/co-meeting/crowy

とりえあえず、動かすところまで確認できたので。

まずGoogle App Engine for Pythonが必要です。

Twitter APIのConsumer Keyは自前で用意しなければなりません。
https://dev.twitter.com/apps/new
開発用に自前で作成しておきます。
conf/settings.pyを編集して、TWITTER_CONSUMER_KEYとTWITTER_CONSUMER_SECRETを設定しておきます。

Pythonのバージョンは2.5系でないとダメです。GAEで開発するときは2.7系でもまあ警告付きで開発できちゃうのですが、2.5系に依存したコードになっているので、2.5系にしないとこのへんでエラーになります。


  File ".../crowy/src/httplib2/__init__.py", line 64, in <module>
    _ssl_wrap_socket = ssl.wrap_socket
AttributeError: 'module' object has no attribute 'wrap_socket'

sslモジュールが、用意されてあるのですが、2.6系以降は標準ライブラリにsslモジュールがあるのでそのためにエラーになるっぽい?

virtualenvを使っているんであれば、2.5系の開発環境を用意してその上で動かしましょう。


$ virtualenv --python=python2.5 env
New python executable in env/bin/python
Installing setuptools............done.
Installing pip...............done.
$ source env/bin/activate
$ python /usr/local/bin/dev_appserver.py .

動きました。

Googleアカウントのログインがあるのですが、Google App Engineの開発サーバで動かしているので、ダミーのログインになります。
そのあとは通常のCrowyの操作と同じです。Twitterアカウントの設定をすることでタイムラインが表示されます。(このとき先ほど設定したTwitter APIのConsumer Keyのアプリが利用されます)

Crowyの3/5までの修正点としては、公式ブログにまとめてあるとおり

  • API v1.0からv1.1への変更
  • ツイート表示形式の厳格化(詳しくはDeveloper Display Requirements)

がメイン。v1.1対応については、基本的にはAPIの置き換えでいいはずなんですが、Crowyの機能によっては1.1では実現できなくなる機能もあります。延命するのが目的なんで、そういう機能はとりあえず切り捨てるしかしょうがないかと思います。HootSuiteもRetweeted to meなんかの機能を停止しちゃいます

割り切ってAPIでできないところは切り捨てていきましょう。Retweet系の幾つかは切り捨てて、controller/twitter.pyエンドポイントを1.1に変えればわりと動くんじゃないかな。。。それと動く・動かないとは別の話としてRate limitのカウント方法が変わります。どの程度使われているのか実績がわからないのですが、API制限がきつくなったりすることも考えられます。。

Twitter以外のサービスについてはしりません。。
表示形式の厳格化はそのとおりにしないとですね。ハイ。

とりあえず、ここまでやった。


Crowyがオープンソース化された→とりあえず動かし方」への2件のフィードバック

  1. WindowsでもPython2.5使えばソース変えなくても動きましたよ。
    ポートは8080以外で動かすのならば変えなきゃですね。 (これはWindowsでなくても)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)