Gwt 谷歌联系人API问题
我正在运行一个关于gwt oauth和Google contacts API的问题。 我使用gwt oauth登录,一切正常。 在运行RPC以检索我获得的联系人时Gwt 谷歌联系人API问题,gwt,google-api,oauth-2.0,google-api-java-client,google-contacts-api,Gwt,Google Api,Oauth 2.0,Google Api Java Client,Google Contacts Api,我正在运行一个关于gwt oauth和Google contacts API的问题。 我使用gwt oauth登录,一切正常。 在运行RPC以检索我获得的联系人时 WARNING: Authentication error: Unable to respond to any of these challenges: {} java.lang.NullPointerException: No authentication header information 下面是客户端中的代码 Button
WARNING: Authentication error: Unable to respond to any of these challenges: {}
java.lang.NullPointerException: No authentication header information
下面是客户端中的代码
Button button = new Button("Authenticate with Google");
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
final AuthRequest req = new AuthRequest(K.GOOGLE_AUTH_URL, K.GOOGLE_CLIENT_ID).withScopes(K.CONTACTS_SCOPE, K.AUTH_SCOPE);
AUTH.expiresIn(req);
AUTH.login(req, new Callback<String, Throwable>() {
@Override
public void onSuccess(final String token) {
greetingService.loginDetails(token, new AsyncCallback<LoginInfo>() {
@Override
public void onSuccess(LoginInfo result) {
greetingService.getContactList(token, new AsyncCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
Window.alert("oh");
}
@Override
public void onFailure(Throwable caught) {
Window.alert("Error:\n" + caught.getMessage());
}
});
}
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
});
}
@Override
public void onFailure(Throwable caught) {
Window.alert("Error:\n" + caught.getMessage());
}
});
}
});
这在几周前是有效的。。。
我认为这不是范围问题,因为loginDetails工作正常。。。
有什么想法吗?解决了。
身份验证中联系人的作用域设置为:
显然,这已经不起作用了,我只是设置为auth
以及在ContactService中查询的完整url您确定这是google api java客户端的一部分吗?我在此列表中未看到联系人:;或者这是老格达协议?是格达,你说得对。显然,google API java客户端不支持Contacts API。
try {
ContactsService s = new ContactsService(K.APPLICATION_NAME);
s.setProtocolVersion(ContactsService.Versions.V3);
s.setAuthSubToken(token);
s.setHeader("Authorization", "Bearer " + token);
for (ContactEntry entry : s.query(new Query(new URL(K.CONTACTS_SCOPE)), ContactFeed.class).getEntries())
System.out.println(entry.toString());
} catch (Exception e) {
e.printStackTrace();
}
return true;