Freebaseをサーバサイドjavascript実行プラットホームとして使う

たぶん前(ちょうどappjetが潰れることになった後くらい)に焼き肉に行った時にid:koyachiucnvswdyhyoupyか誰かにFreebaseでappjetと同じようにjavasriptのコードをサーバで実行できる、というのを教えてもらいました。

今日いじってみたらだいたいappjetみたいなかんじでjavascriptでコードを書いたら実行してくれます。必要な範囲でしかいじってないけどappjetより完成度は高い印象。はじめ使い方が全然わからなかったのでメモ。

Getting Started

はじめにFreebaseのアカウントを作ってログインしたらFreebase App Editorにアクセス。

Acre.Freebase.Com

こういう画面が出てくるのでてきとうに名前をつける。
そうするとコードが書けるようになるので(Greasemonkeyと相性が良くないみたいなので、この画面が出なかったらGreasemonkeyをoffにしてみてください)

デフォルトではPHPみたいなテンプレートエンジンモードになっていて、scriptで囲まないとjsのコードとして認識されないのでFileからAcre typeScriptに変えましょう。そうするとベタにjsが書けます。

設定を変えたら

acre.write("hello")

と書いて右上のView with Consoleを押せばhelloとだけ書かれたページが表示されます。

あとはHelpにAPI Referenceがあるのでそれを参考にコードを書きましょう。

secrets

Freebaseはning, appjetの影響でconle this appボタンがついていて、ボタンを押すだけでほかのアプリを自分のところにコピーしてきて編集できるようになっています。でもそういう時に困るのが秘密にしておかないといけないAPI keyで、ningもappjetもそれぞれ秘密のAPI keyまでもがコピーされないようにする仕組みがありました。Freebaseではacre.keystoreというのを使って秘密のコピーされないデータにアクセスできるようになっています。
秘密のデータを設定するのはGUIからしかできません。
左上のアプリケーション名が書かれているボタンを押してWeb Servicesのタブを押すと設定できます。

雑感

  • appjetよりも自由度の高いHTTP requestが出せるので便利
  • cronはないっぽい
  • Content-Typeを設定しても反映されない text/plain固定なのかも

ちなみにこのacre本来はウェブ上のデータを持ってきて編集してfreebaseに格納するのに使うためのものみたいです。
まじめにつくればちゃんとしたウェブアプリも作れます。


About this entry