Hello, Please use SSL (https) over non-SSL (http) whenever possible. Also, make sure that the user issuing the request (e.g the one specified on the xoauth_requestor_id query parameter) has write access on the domain's shared contacts (it must be an admin user).
Also, please make sure to change the "domain" component of the URL path with your domain name: https://www.google.com/m8/feeds/contacts/<DOMAIN>/full If that doesn't work, make sure that the scope " https://www.google.com/m8/feeds" has been authorized for the 2-legged OAuth consumer key and secret. Best, Alain On Fri, Nov 25, 2011 at 3:36 AM, Nirzari Bhatt <[email protected]>wrote: > Hi, > > I am trying synchronize the contacts created in some CRM system with > Google Contacts. > i.e. whenever a contact is getting added/deleted/modified in CRM it > should get reflected in GoogleContacts. I am using two legged > authentication for the same. > > I was able to achieve addContact and UpdateContact functionality. > > But when I am trying to delete a contact (i.e. Domain shared contact) > from Google its throws following exception. > > java.lang.NullPointerException: No authentication header information > at > > com.google.gdata.util.AuthenticationException.initFromAuthHeader(AuthenticationException.java: > 96) > at > > com.google.gdata.util.AuthenticationException.<init>(AuthenticationException.java: > 67) > at > > com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java: > 564) > at > > com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java: > 543) > at > > com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java: > 536) > at > > com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java: > 515) > at > > com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java: > 515) > at com.google.gdata.client.Service.delete(Service.java:1560) > at com.google.gdata.client.GoogleService.delete(GoogleService.java: > 691) > at com.google.gdata.data.BaseEntry.delete(BaseEntry.java:647) > at > > com.visy.connector.synchronizer.impl.ContactSynchronizerImpl.deleteContact(ContactSynchronizerImpl.java: > 160) > at com.visy.connector.TestServlet.doGet(TestServlet.java:58) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 511) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1166) > at > > com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java: > 35) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: > 58) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java: > 122) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java: > 97) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 765) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 418) > at > > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: > 70) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:351) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 542) > at org.mortbay.jetty.HttpConnection > $RequestHandler.headerComplete(HttpConnection.java:923) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: > 409) > at org.mortbay.thread.QueuedThreadPool > $PoolThread.run(QueuedThreadPool.java:582) > > > Below is the code I am using for deleteContact. > > //For Two legged Authentication > GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); > oauthParameters.setScope(Scope); > oauthParameters.setOAuthConsumerKey(ConsumerKey); > oauthParameters.setOAuthConsumerSecret(secret); > OAuthSigner signer = new OAuthHmacSha1Signer(); > > ContactsService myService = new ContactsService(serviceName); > myService.setOAuthCredentials(oauthParameters, signer); > String FEED_URL = http://www.google.com/m8/feeds/contacts/domain/full; > String urlStr = FEED_URL + "/" + contactId + "?xoauth_requestor_id=" + > domainAdminEmail; > contact = myService.getEntry(new URL(urlStr), ContactEntry.class, > contactId); > contact.delete(); > > Kindly help me out to figure out what might have gone wrong with the > code. > > Regards, > Nirzari > > -- > You received this message because you are subscribed to the Google > Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. > To post to this group, send email to > [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://code.google.com/apis/contacts/community/forum.html > -- Alain Vongsouvanh | Developer Programs Engineer -- You received this message because you are subscribed to the Google Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://code.google.com/apis/contacts/community/forum.html
