2011-07-14 10 views
6

私はアンドロイド用のアプリケーションを開発しています。これはapiのようなサーバー側を持っています。そして、このアプリはユーザーのログインメカニズムを持っています。私はログイン情報としてgoogle/fb/twitterアカウントを使いたいと思っています。アプリの目的は非常に社会的に魅力的です。ログインとしてGoogleアカウントを使用する...次は何ですか?

私はすでに、電話機に保存されているGoogleアカウントをユーザー確認(Howto use Google Accounts as login)として使用しています。問題は、私はそのとき何をすべきかわからないということですか?私が理解したように、アカウントマネージャーはついに私にトークンを与えます。それから私は何をしますか?ユーザーがログインしたことをサーバー側に知らせるにはどうすればよいですか?このトークンは、しばらくして無効にすると変更される可能性があるので、どのようにこのトークンを保存するのですか?

そして別のこと。ユーザーが自分のGアカウントを最初に入力したときはどうすればよいですか?私は彼のGアバターと表示名を取得し、サーバーに保存したいので、ユーザーはクリック数を節約できますか?私は何とか電話から送信するのですか、それとも何とかサーバーから取得しますか?

FBについても同様の疑問が生じることがあります。

希望私は、これはもう少し一般的な質問...

TIAであるとして、正しく私の質問をしました。

答えて

1

GoogleはOpenIdを使用していますが、FBには独自のものがあります。これらの2つのコードパスはそれぞれ異なる必要があります。確かに

http://www.sozkan.com/blog/2010/09/24/very-quick-openid-integration-tutorial/

- これは、データを管理するためのURLに依存している - あなたはそれがすべて内部で起こるしたい場合は、あなたのコードでこれをラップする必要があります。あなたがトークンを持っていたら、違いにあなたなど、それが何であるか、寿命のサーバー側のコード、

情報を通知することができます http://thenextweb.com/socialmedia/2010/11/04/facebook-connect-oauth-and-openid-the-differences-and-the-future/

+0

質問はまさにクライアント - サーバーアプリケーションの手順です。 Webベースのアプリケーションでは、この作業は唯一の作業が1か所で行われるため、この問題は解決されません。これは別の状況です。ユーザーはCLIENTで認証されており、SERVERはそれを認識していません。だから私は実際にユーザーに特定の資格情報で認証されていることと、これをすべて確認する方法などについて実際に通知します... – Djumaka

+0

CLIENTを介して認証し、サーバーに通知します。または、あなたはそれを逆の方法で行います - クライアントがサーバに認証を依頼し、その結果をクライアントに返送させます。ほとんどのサーバー言語(PHP、JAVA、Perlなど)は、ある種のWeb通信(Curlなど)をサポートしているため、認証の手段の1つです。 GoogleはまたSOAPの道を提供するかもしれない。 – ethrbunny

+0

URLをHTTPで手作業で入力し、AccountManagerの動作を複製し、Androidの既存のログインアカウントのリストを破棄するため、ダウン投票されました。 – Phlip

2

私はthis questionはあなたが求めている正確に何をカバーしていと思います。

私にとって最高の解決策は、thisブログ記事で説明されていました。 Googleアカウントでのみ動作し、AppEngine側でUserServiceを使用していると仮定していますが、うまくいくと思います。私はそれが助けて欲しい

0

ただ、この(古い)質問を終了する、とどこかに私のコードスニペットを駐車し、私はこのonCreate()コードでPreferenceScreen活動を使用してGoogleを使ってログインを開始しました:

ArrayList<String> list = new ArrayList<String>(); 
    list.add("https://www.googleapis.com/auth/userinfo.profile"); 
    final GoogleAccountCredential credential = 
     GoogleAccountCredential.usingOAuth2(getApplicationContext(), list); 
    Preference acctValue = findPreference("GMail"); // A <Preference> in the XML... 

    acctValue.setOnPreferenceClickListener(new OnPreferenceClickListener(){ 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      startActivityForResult(credential.newChooseAccountIntent(), 1); 
      return false; 
     } 
    }); 

そして、彼らはこれらの日陰を追加する必要文字を私のlibsフォルダに:

google-api-client-android-1.17.0-rc.jar 
google-play-services.jar 
google-api-client-1.17.0-rc.jar 
google-http-client-1.17.0-rc.jar 
関連する問題