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 : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Partager