2

Google Health 用のアプリを開発して公開しました。ここで、ユーザー名とパスワードを尋ねることで、毎回 Gmail アカウントにログインすることを避けたいと考えています。これを行うために、次のオプションを使用できると聞きました。1. OAuth 2. アカウント マネージャー 3.

OAuth の問題は、Android -> Web App -> Health パスを経由することです。そのため、Web アプリも開発する必要がありますが、今はやりたくありません。

アカウントマネージャーを使用しようとしています。これは、アカウントのリストと選択したアカウントの有効なauthTokenを取得できるコードです。

AccountManager mgr = AccountManager.get(getApplicationContext()); 
        System.out.println("Got account manager");

        Account[] accts = mgr.getAccounts();
              } 
        Account acct = accts[0];   
        AccountManagerFuture<Bundle> accountManagerFuture = mgr.getAuthToken(acct, "android", null, this, null, null); 
        Bundle authTokenBundle = accountManagerFuture.getResult();  
        System.out.println("Account name "+accts[0].name);

        String authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString(); 
        System.out.println("Got token:"+authToken);

しかし今、このトークンを使用して健康データにアクセスする方法について混乱しています。人口統計フィードを取得するために、次のコードを使用しました。ここでは、アプリケーションにログインするユーザーを明示的に作成しました。

    String queryURL = "https://www.google.com/health/feeds/profile/ui/" + profileId +"/-/DEMOGRAPHICS";
getDemoGrInfoQuery = new Query(new URL(queryURL));
        Feed dempGrResultFeed;
        globals = new Globals();
    dempGrResultFeed = healthService.query(getDemoGrInfoQuery, Feed.class);

そのため、URL を使用してフィードを取得していました。
そして今、ログイン プロセスをスキップし、上記の authToken を使用してフィードを取得したいと考えています。これはどのように行うことができますか?

どんな助けでも本当に感謝します!!! 前もって感謝します、

4

1 に答える 1

1

標準のOAuth手順が機能するはずなので、必要なすべてのパラメーターを使用してWebView(または同様のもの)でOAuth URLを開き、ユーザーがユーザー名とパスワードをGoogle(アプリではなく)に提供すると、Googleがトークンを提供しますこれは、将来の通信に使用できます。

このようにして、ユーザーはログイン資格情報を提供する必要がありません。彼らはそれをグーグルだけに与えます、そしてグーグルはあなたがそれを使うたびにあなたのアプリを認証するトークンをあなたに与えます。

ユーザーがアプリケーションを使用してGoogleからログアウトするか、アプリケーションへのアクセスを拒否しない限り、WebViewを1回だけ開く必要があるため、これを使用することをお勧めします。

トークンを取得したら、そのトークンを使用してgoogleのポーリングを開始し、ユーザーにログイン資格情報を要求することはありません。非常にシームレスです。

アップデート

チャットでの会話の後、アプリケーションをgoogleに登録する必要があることをお知らせします。これにより、appIDが提供されます。このappIDは、Androidアプリが、に代わって許可を要求していることをgoogleに通知するために使用されます。このappIDが参照するアプリケーション。

更新2

  • すべてのパラメータを使用してGoogleOAUthを開くと、Googleからコードが提供されます
  • そのコードを使用して、GoogleへのPOSTリクエストを再度作成すると、Googleは長続きするAccessTokenを返すようになります

その後、このAccessTokenを今後のすべての通信で使用できます

于 2011-04-06T09:18:33.510 に答える