22

Android アプリで 3 か月間 Parse を使用しています。ここで、メール ログインとソーシャル サインオン (Facebook と Google+) をアプリに追加したいと考えています。電子メールと fb ログインを正常に追加しました。ユーザーは電子メールまたは Facebook の両方またはいずれかを接続でき、アプリはユーザーを認識します。

たとえば、メールでログインし、Facebook に接続し、別のデバイスでアプリを使用し、Facebook でログインすると、アプリは同じユーザーであることを認識し、私用にカスタマイズされ、私のデータを表示します。また、電子メールも機能します。

Android 用の Google+ サインインを追加しましたが、ユーザーの Google+ 資格情報をログイン ユーザーに接続できません。

Parse Users テーブルには、Facebook 認証データを取得する authData フィールドがあり、Twitter を取得するだけでなく、これらのサインオンの両方が Parse SDK に組み込まれています。

Google+ のために何をするのが最善ですか? Google+ にサインインしたユーザーを接続する方法と同様に、データベースの設計について混乱していますか?

ユーザーが Google+ 経由でログインした場合はどうなりますか? Parse ユーザーを作成し、Parse でユーザーを認証するにはどうすればよいですか?

私はクラウド コードと Android に慣れており、正しい方向に私を後押ししてくれる何らかのヘルプ/指示を本当に感謝しています。私は OAuth2 を使用したことがなく、E メールやソーシャル サインオンに Parse ログインを使用しているため、使用する必要はないと思います。しかし、私が間違っている場合はお知らせください。

ありがとう!

更新: 私は解析の質問に関する多くの質問を読み、become メソッドを何度もチェックアウトしました (それを読んだ後、何かが足りないと考え続けたため)。この質問を確認してください - 私は現在同じ状況にあります。


1. Google+ サインインを実装しました。2.
GoogltAuthUtil を使用してアクセス トークンを取得しました。

立ち往生:
3. ユーザーが Google+ でサインインした後、現在サインインしている Parse ユーザーをリンクする方法は?
4. Google+ がユーザーの最初の (そして唯一の) ログイン選択であった場合、新しい解析ユーザーを作成する方法は?

4

5 に答える 5

1
void createNewGPlusUser(final String email, String name) {
        final ParseUser user = new ParseUser();
        user.setUsername(email);
        user.setPassword("my pass");
        user.put("any other variable in User class", "value");
        user.setEmail(email);
        user.put("name", name);
        signInParseUser(user, email);
    }

void signInParseUser(final ParseUser user, final String email) {

        user.signUpInBackground(new SignUpCallback() {
            public void done(ParseException e) {
                if (e == null) {
                    Log.d("TAG", "Created user");
                    // Hooray! Let them use the app now.
                    login(email);
                } else {
                    Log.d("TAG", "Failed Creating user");
                    e.printStackTrace();
                    // Sign up didn't succeed. Look at the ParseException
                    // to figure out what went wrong
                }
            }
        });
    }

void login(final String email) {
        ParseUser.logInInBackground(email, "my pass", new LogInCallback() {
            public void done(ParseUser user, ParseException e) {
                if (user != null) {
                    // Hooray! The user is logged in.
                    Log.d("TAG", "Login successful");
                                    } else {
                                        // Signup failed. Look at the ParseException to see what happened.
                }
            }
        });
    }
于 2015-02-02T09:59:04.090 に答える