Google App Engine上でGroovyとTwitterを動かす為のセットアップガイ

Google App Engine上でTwitterをGroovyで動かす情報。

(bot作ろう会 Groovy分科会は、会員絶賛募集中です。)

必要なファイルは下記zipにまとめてあります。

http://textcode.vs.land.to/GROOVY/TwitterBotGroovy1.zip

まず、Java環境でのHello Worldまでは完了しているものとします。

■ Twitter4j と Groovyのjarの配備


以下の二つのjarを、以下の位置に配置します。

war/WEB-INF/lib に
groovy-all-1.6.3.jar
twitter4j-1.0.4.jar
のふたつのjarを追加します。ここwar以下のファイルはserverに実際にdeployされます、
これによりこれらのjarはサーバにも送られます。


置き場所は、例えば、
c:\workspace\GroovyBotTemplate1\war\WEB-INF\lib  
とかになりまか。
eclipseの該当ディレクトリに直接ファイルを置いて、
プロジェクトの右クリック -> Refresh
で見えるようになります。


■Groovy ファイル置き場の用意
WEB-INF の右クリック->New-Folder で groovyフォルダーを作成します


■Groovletの関連づけ
web.xmlservlet mappingのルールを追加
以下の2定義でワンセットです。
拡張子がGroovyのファイルは GroovyServletとして名前を共通して与え、そのServletは grovy.servlet.GroovyServlet クラスとして扱いますという意味です。


下記定義部分をご自分のweb.xmlに追加してください

    <servlet>
		<servlet-name>GroovyServlet</servlet-name>
		<servlet-class>groovy.servlet.GroovyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
		<servlet-name>GroovyServlet</servlet-name>
                <url-pattern>*.groovy</url-pattern>
    </servlet-mapping>


■Groovletの配置

groovyのフォルダーの下に Hello.groovyという名の groovlet (Groovy Servlet)を置きます。

html.html {
    head {
        title "Hello"
    }
    body {
        p "Hello from Hello.groovy"
    }
}

ここでプロジェクト動かしてみましょう


■ Hello from Hello.groovy が見えること。

http://localhost:8080/Hello.groovy を指定して Groovletが見えることを確認します。


下記の様なHTMLがGroovletによって作られています。
Groovlet便利でしょ。

<html>
  <head>
    <title>Hello</title>
  </head>
  <body>
    <p>Hello from Hello.groovy</p>
  </body>
</html>


■今度はTwitter bot の骨格を作って、現在時刻をつぶやいてみましょう。


下記コード Jihoubot.groovyを groovyフォルダに置きます。これを動かしてみましょう。

import java.text.*
import twitter4j.*

now = new SimpleDateFormat("yyyy/MM/dd HH:MM:SS").format(new Date())

twit = new Twitter("あなたのuserid","あなたのpassword")
twit.update("現在の時刻は ${now} ")

html.html {
    head {
        title "Jioubot"
    }
    body {
        p "posted ${now} "
    }
}


はい、これでご自分のTwitterアカウントに現在時刻が投稿されたでしょうか。
cookieがセットできないとか、時間が日本時間ではないとか
まだいまいちな部分がありますが、これで投稿までは出来ましたね。
投稿用お試しアカウント coolpoco を見ると、
うまくいった時の実行結果が分かると思います。
http://twitter.com/coolpoco

あと汎用で組み込まなくてはいけないのは

  • cronによる自動実行
  • 例外処理
  • logging
  • 外部ファイル参照 (これは使わないこともあるかも)

あたりですね。
とりあえず第一回での作業内容としては、このあたりでよいと思います。
Groovyがいい感じだということがおわかりいただけたと思います。

■ BOTTUKU の favicon.ico (もはや公式アイコン?) も入れておきました。
 これはお好みでwarの直下のindex.htmlと同列に配置して使いますが、これはお好みです。