2

私の GWT アプリケーションでは、com.google.api.gwt.oauth2.OAuth2モジュールを使用して、ユーザーが OAuth でサインインできるようにしています。次のように、OAuth ログインを提供するために GoogleApi クラスを実装しました。

public final class GoogleApi {
    private EventBus eventBus;

    private final ClientOAuth2Login oAuth2Login;
    private ClientGoogleApiRequestTransport requestTransport;

    private String accessToken;

    public GoogleApi(final EventBus eventBus, String clientId) {
        this.eventBus = eventBus;
        oAuth2Login = new ClientOAuth2Login(clientId);
    }

    ...

    public void login(final Receiver<String> callback) {
        oAuth2Login.login(new Receiver<String>() {
            @Override
            public void onSuccess(String response) {
                accessToken = response;
                callback.onSuccess(response);
            }

            @Override
            public void onFailure(ServerFailure error) {
                Window.alert(error.getMessage());
            }
        });
    }
    ...
}

この login() メソッドを次のように呼び出しています。

googleApi.login(new Receiver<String>() {
    @Override
    public void onSuccess(final String token) {
        // I want to get the logged in user's name here
    }

    @Override
    public void onFailure(ServerFailure error) {
        ...
    }
});

ログインに成功したら、ログインしたユーザーのフルネームを取得したいと思います。モジュールを使用してユーザーの名前を取得できることはわかっていますが、ユーザーcom.google.api.gwt.services.Plusが Google Plus に登録されている必要があり、そうでない場合はエラーがスローされます。

GWT アプリで OAuth を使用してこれを行うにはどうすればよいですか? 基本的に、可能であれば、このソリューションを GWT アプリ に実装できるようにしたいと考えています。

4

1 に答える 1