私の 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 アプリ に実装できるようにしたいと考えています。