Google Fusion Tablesのやり方がいろいろ変わっててヘンな笑いが出た
はじめに
1年ほど前にAndroidからGoogle Fusion Tablesにアクセスするための方法をごにょごにょやって、とりあえず成功しましたが、今年の夏にそのアプリを動かすと、認証しない。その他いろいろ手を入れないといけなくなりました。
使えるようにするための手順
署名の指紋を得る
まず、アプリケーション署名の指紋(SHA1)が求められるので keytool で得ておきます。JDKに添付されています(JREではありません)。
デバッグ用は (ユーザフォルダ)\.android\androuddebugkey にあります。
cd (ユーザフォルダ)\.android keytool -exportcert -alias androiddebugkey -keystore debug.keystore -list -v ... SHA1: 00:00:... ...
の20バイトを記録しておきます。
Google API への登録
- http://code.google.com/apis/console に行きプロジェクトを作成
- "Services"でFusion TablesをONにする
- "API Access"に移動
- "Create Another Client ID"
- ウィンドウが出るので "Installed Application" を選択
- "Application Type" の選択を促されるので "Android" を選択
- "Package Name" と 指紋 を登録
リリース用指紋登録も忘れずに
頭から抜け落ちたらログインできなくてすげえあせるorz とっとと登録しといた方がいいです。
別クライアントになりますが、ソースやら何やらについては特に変更すべきことはありません。
Android側 (4以上)
- authTokenType "oauth2:https://www.googleapis.com/auth/fusiontables"
- accountType "com.google"
で行います(古い認証では、authTokenTypeは"fusiontables"になっていました)。
あとはAndroidライブラリの認証でどうにかしてくれます。
Fusion Tables SQLの変更点
- GET系は"https://www.googleapis.com/fusiontables/v1/query?sql=(SQL)&access_token=(トークン)" に変更されています。
- POST系は、URLは"https://www.googleapis.com/fusiontables/v1/query?access_token=(トークン)"で、POSTコンテントに"SQL=(SQL)"を書くように変更されています。
- デフォルトの出力はJSONになりました。地理情報もGeoJSONになりました。本来はその方がいいと思いますが、以前の CSV+KMLの一部 から変更したくない場合は、各URLに"alt=csv"を追加します。