在我的 GWT 应用程序中,我使用该com.google.api.gwt.oauth2.OAuth2
模块来允许用户使用 OAuth 登录。我已经实现了一个 GoogleApi 类来提供 OAuth 登录,如下所示:
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 应用程序中实现这个解决方案。