私のAndroidアプリケーションでは、誕生日フィールドをgoogle.com/contactsから取得したいと思います。このフィールドは、Android連絡先アプリケーションで同期されていないためです。Googleの連絡先に読み取りアクセスするにはどうすればよいですか?
Googleの連絡先APIを見ましたが、使用する必要がありましたか?どれ ?ポータブルバージョン?
または、同期がある場合にAndroidが行うように、これらの連絡先を読み取る簡単な方法はありますか?
前もって感謝します
私のAndroidアプリケーションでは、誕生日フィールドをgoogle.com/contactsから取得したいと思います。このフィールドは、Android連絡先アプリケーションで同期されていないためです。Googleの連絡先に読み取りアクセスするにはどうすればよいですか?
Googleの連絡先APIを見ましたが、使用する必要がありましたか?どれ ?ポータブルバージョン?
または、同期がある場合にAndroidが行うように、これらの連絡先を読み取る簡単な方法はありますか?
前もって感謝します
AccountManagerがリリースされる前にハッキングがありました。私は、約1年前にAndroid開発者グループでスレッドを開始しましたが、削除されました。リフレクションを通じてアクセスしなければならない文書化されていない方法がありました。グーグルがスレッドか何かを削除したように、私は今どこにもそれを見つけることができないようです。以下に似たようなものを見つけましたが、それは私が働いていたものではありません。
http://donpark.org/blog/2009/01/24/android-client-side-oauth
最悪の場合、現在出回っているほとんどのデバイスは、最終的に2.1を取得するはずです。したがって、ログインさせてから、Googleから認証キーを検証して取得することができます。また、2.1を使用している場合は、AccountManagerを使用し、資格情報を気にしないでください。以下のようなもの
WebRequest req = HttpWebRequest.Create(
@"https://www.google.com/accounts/ClientLogin? accountType=GOOGLE&Email=them@gmail.com&Passwd=pass&service=gbase&source=sadboy");
WebResponse resp = req.GetResponse();
string all;
using (StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()))
all = sr.ReadToEnd().Trim();
int auth = all.IndexOf("auth=");
string auth = all.Substring(auth, all.Length - auth);
アンドロイド2.0以降はAccountManagerを使用して可能になるはずです。
チュートリアルもサンプルもありません。試してみるために2.0以上のデバイスにアクセスすることはできません。
http://code.google.com/p/android/issues/detail?id=1073#c28を参照してください
私が理解しているように、GoogleアカウントのAuthTokenを取得して、次のように承認ヘッダーに渡すことができるはずです。承認:GoogleLogin auth = yourAuthToken