2012/04/04

GAE/Python(webapp)を使ってLingr botで遊ぶ(上)

GoogleAppEngine Python(以下、GAE/Python)でLingr用Botを作成しますよ。
dotcloudでも良いんですが、メジャーなGoogleAppEngineで。
pureなpythonでも良いんですが、まぁせっかくフレームワークがあるのでwebappで。
ちなみに、GoogleAppEngineもwebappもdjangoもLingrも触るのは初めて。
なので結構丁寧に書いてみたいと思う(大目に見てねってことじゃなくてむしろツッコミ歓迎)。

さて用意するもの、以下3点。

  • Python 2.5.x
  • GoogleAppEngineSDK
  • Lingrの部屋と登録したbot

LingrのアカウントはちゃちゃっとFacebookで連携認証する(できたよね?)なり
新規で作成したあと、自分用の部屋をひとつテスト用で作成しておきましょう。
settingsでcreate a new botとinvite a new botしたらとりあえずOKです。

ソースはホントにざっくりと書きました。
目的は誰かの発言に対して、固定の反応を(testと発言)させること。
自動生成されるmain.pyの原形をなるべく崩さないようにしてあります。

で、ソースは以下。

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainHandler(webapp.RequestHandler):
    def post(self):
        self.response.headers["Content-Type"] = "text/plain"
        self.response.out.write("test")

application = webapp.WSGIApplication(
        [('/', MainHandler)],
        debug=True)

def main():
    run_wsgi_app(application)

if __name__ == '__main__':
    main()


5〜7行目がキモです。
以下、行番ごとに簡単な解説。

POSTを受け取ったら
Content-Typeをtext/plainに指定して
responseにtestと出力

各メソッドやらハンドラやらの解説は公式のドキュメント見た方が良い。
たったこれだけでBotに「発言」させることが出来ます。

さて、これで発言させるための枠が出来たので
今度はJSONで渡されたデータからおうむ返しするように改造してみましょうかね。

それでは、電波送信終了ー。

0 件のコメント:

コメントを投稿