GWT登录成功后获取Google用户名称

时间:2013-04-13 09:05:42

标签: gwt oauth

在我的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应用中实现this solution,如果可能的话。

1 个答案:

答案 0 :(得分:1)

你看到了吗?我觉得这很有用。然而,实现简单结果的代码很多:

http://www.sw-engineering-candies.com/blog-1/howtogetuserinformationwithoauth2inagwtandgoogleappenginejavaapplication