YQLではデフォルト多くのテーブルが組み込まれているのだけど、自由に拡張できる仕組みとしてOpen Data Tableというものがある。YQL ConsoleではShow Community Tablesをクリックして有効にすると、Community Open Data Tablesに登録されているGitHubやTwitterのためのテーブルを試すことができる。これらのOpen Data Tableを実際に利用するためにはYQLへのリクエストへenv
パラメータとしてenvironmentファイルを指定しなければならない。最近よく利用するようになったのでQuery YQLプラグインでもそれらを利用できるように更新した。
引数の互換性を維持したまま引数を増やしたので気持ち悪いコードになった。statement
以外はオブジェクトにして渡すとかの方が良かったかもしれないけど、これ以上増えることも無いだろうと思うのでまぁ良し。びっちり書く場合は以下のようになる。
var statement = "select * from twitter.user.timeline where id='hail2u_'";
$.queryYQL(statement, "json", "http://datatables.org/alltables.env", function (data) {
// do something with "data".
});
第三引数にenvironmentファイルのURLを指定する。Community Open Data Tablesのテーブルを全てインポートする場合のみall
というキーワードでも可で、第二引数は省略するとjson
になるので、上記コードは以下のようにも書くことができる。
var statement = "select * from twitter.user.timeline where id='hail2u_'";
$.queryYQL(statement, "all", function (data) {
// do something with "data".
});
Open Data Tableの利用はGoogle検索やTwitterのテーブルの利用が主なのだけど、他にもいくつか面白いものがある。
auth.oauth.*
: おおーすって読む奴data.html.cssselect
: XPathではなくCSSのセレクタで要素を切り出すip.location
: IPアドレスから地域を調べるquery.multi
: 複数のクエリをまとめて投げる(resultsが複数返ってくる)yahoo.siteexplorer.inlinks
: Yahoo!のSite Explorerを利用してインバウンドリンクを調査するそのうちテーブル書いてみたい。
そのうちとか言う時は大抵やらないよね。