Problème avec une GData Request token
Bonjour à tous,
je vous expose mon problème:
après avoir récupéré l'AccessToken pour accéder aux données du Google Account d'un utilisateur, je souhaite récupérer la liste de ses contacts. Je passe donc par la librairie "com.google.gdata-contacts".
Le problème est lorsque j'arrive au niveau de l'appel de la fonction ContactService.getFeed(), je recois sur mon navigateur l'exception suivante :java.lang.NullPointerException
com.google.gdata.client.authn.oauth.OAuthUtil.normalizeParameters(OAuthUtil.java:163)
com.google.gdata.client.authn.oauth.OAuthUtil.getSignatureBaseString(OAuthUtil.java:81)
com.google.gdata.client.authn.oauth.TwoLeggedOAuthHelper.addCommonRequestParameters(TwoLeggedOAuthHelper.java:79)
com.google.gdata.client.authn.oauth.TwoLeggedOAuthHelper.addParametersAndRetrieveHeader(TwoLeggedOAuthHelper.java:121)
com.google.gdata.client.authn.oauth.TwoLeggedOAuthHelper.getAuthorizationHeader(TwoLeggedOAuthHelper.java:112)
com.google.gdata.client.GoogleAuthTokenFactory$OAuthToken.getAuthorizationHeader(GoogleAuthTokenFactory.java:204)
com.google.gdata.client.http.HttpGDataRequest.<init>(HttpGDataRequest.java:331)
com.google.gdata.client.http.GoogleGDataRequest.<init>(GoogleGDataRequest.java:456)
com.google.gdata.client.http.GoogleGDataRequest$Factory.createRequest(GoogleGDataRequest.java:93)
com.google.gdata.client.http.HttpGDataRequest$Factory.getRequest(HttpGDataRequest.java:165)
com.google.gdata.client.Service.createRequest(Service.java:760)
com.google.gdata.client.GoogleService.createRequest(GoogleService.java:525)
com.google.gdata.client.Service.createFeedRequest(Service.java:1156)
com.google.gdata.client.Service.getFeed(Service.java:997)
com.google.gdata.client.GoogleService.getFeed(GoogleService.java:631)
com.google.gdata.client.Service.getFeed(Service.java:1017)
controller.ConsumerController.doGet(ConsumerController.java:216)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| if(request.getParameter("contact")!=null)
{GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setScope("http://www.google.com/m8/feeds/contacts/default/full");
oauthParameters.setOAuthConsumerKey(consumer.getConsumerKey());
oauthParameters.setOAuthConsumerSecret(consumer.getConsumerSecret());
GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());
try {
String token = oauthHelper.getAccessToken(oauthParameters);
System.out.println("here");
} catch (OAuthException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
oauthParameters.setOAuthType(OAuthType.TWO_LEGGED_OAUTH);
oauthParameters.setOAuthToken(consumer.getToken());
oauthParameters.setOAuthTokenSecret(consumer.getTokenSecret());
ContactsService myService = new ContactsService("GoogleAccountProject");
myService.setHeader("Authorization", "Bearer " + accessToken);
try {
myService.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
} catch (OAuthException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// Request the feed
URL feedUrl = new URL("https://www.google.com/m8/feeds/contacts/default/full");
ContactFeed resultFeed;
try {
resultFeed = myService.getFeed(feedUrl, ContactFeed.class);
System.out.println(resultFeed.getTitle().getPlainText());
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} |