2

在我的 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 应用程序中实现这个解决方案。

4

1 回答 1

1

你看到这个了吗?我认为它非常有用。但是,要获得一个简单的结果需要大量代码:

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

于 2013-05-12T18:41:58.987 回答