googleアカウントの認証

Androidgoogleアカウントの認証をやってみようとしてみました。
2.1以降ということにして、AccountManager を使います。1.6はもういいことにしておいてやって下さい…。
http://d.hatena.ne.jp/adsaria/20101012/1286886888 あたり参照。

  • AccountManager#getAccountsByType で アカウントタイプが "com.google" のアカウントを取得。
  • AccountManager#getAuthToken でトークンを取得。第2引数はサービスタイプで、コメントで紹介してくれています。

ただし、URLを https://www.google.com/accounts/TokenAuth?auth=(トークン)&continue=(遷移先URL) とされていますが、https://www.google.com/accounts/TokenAuth?auth=(トークン)&continue=(遷移先URL)&service=(サービスタイプ)&source=Android とする必要があります。
また、サービスタイプについては http://blog.mine-studio.com/2011/01/android%E3%81%AEgoogle-authenticator%E3%82%92%E8%A7%A3%E6%9E%90%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/ も。あと、ほとんどサーバサイドで処理してるんだよ、というところもポイントかなと。

Fusion Tables にアクセスしてみる

https://www.google.com/fusiontables/api/query?sql=SHOW TABLES とかこんなかんじ。
認証情報は、先ほどのトークンを使用。
どこに埋め込むかというと、HTTPヘッダ。

Authorization: GoogleLogin auth=(トークン)

です。POSTでもGETでも同じ。
そのうえで、fusiontables API の URL をたたけば、結果が出てきます。
出てくるのは、CSVです。