3

Contacts API v3, group query parameter does not support the 'q' parameter??? In the Google Contacts API v3, it clearly says it is supported. But, when I am using java client library provided by google, to search contract groups by setFullTextQuery in query, I am getting HTTP status 403 Forbidden. Throws "Exception in thread "main" com.google.gdata.util.ServiceForbiddenException: Forbidden This service does not support the 'q' parameter."

I have downloaded latest Java Client Library: GData-Java/1.47.1(gzip) for GDATA. Try to use the setFullTextQuery method for searching contact groups.

What steps will reproduce the problem?

  1. Setup Java Sample Contacts
  2. In ContactsExample.java, in queryEntries method, add a new line. myQuery.setFullTextQuery("Your search term here");
  3. And run it

I checked the version is correct, it is using GData-Version: 3.0 If run the sample java as it is provided, everything runs fine. But, I need to search the contacts. And using 'q' parameter should be the right approach.

Please help. Is it something wrong in the library, or I need to take a different approach to search contacts?

Logs below:

Executing action: QUERY

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest setPrivateHeader FINER: Authorization:

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest setHeader FINER: User-Agent: Google-contactsExampleApp-3 GContacts-Java/3.1.0 GData-Java/1.47.1(gzip)

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest setHeader FINER: Accept-Encoding: gzip

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest setHeader FINER: GData-Version: 3.0

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINE: 403 Forbidden

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: null: HTTP/1.1 403 Forbidden

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: X-Frame-Options: SAMEORIGIN

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Transfer-Encoding: chunked

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Date: Wed, 28 Nov 2012 17:38:48 GMT

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Expires: Wed, 28 Nov 2012 17:38:48 GMT

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: X-XSS-Protection: 1; mode=block

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Content-Encoding: gzip

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Content-Type: text/html; charset=UTF-8

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Server: GSE

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: Cache-Control: private, max-age=0

Nov 28, 2012 12:38:48 PM com.google.gdata.client.http.HttpGDataRequest execute FINER: X-Content-Type-Options: nosniff

Exception in thread "main" com.google.gdata.util.ServiceForbiddenException: Forbidden This service does not support the 'q' parameter.

at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:605)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
at com.google.gdata.client.Service.getFeed(Service.java:1135)
at com.google.gdata.client.Service.getFeed(Service.java:1077)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:676)
at com.google.gdata.client.Service.query(Service.java:1237)
at com.google.gdata.client.Service.query(Service.java:1178)
at sample.contacts.ContactsExample.queryEntries(ContactsExample.java:406)
at sample.contacts.ContactsExample.processAction(ContactsExample.java:350)
at sample.contacts.ContactsExample.main(ContactsExample.java:626)

Java Result: 1

2 Answers2

0

Just a long-shot here, as you have not posted any code...

It seems that you have not authenticated and set your user who does the query.

I.E. you might need to add the following to your query:

myQuery.addCustomParameter(
    new Query.CustomParameter("xoauth_requestor_id"
        , username)); //where username is the authenticated (probably by OAuth) user

Hope i helped..

Xeroxoid
  • 2,017
  • 1
  • 15
  • 19
0

This works:

https://www.google.com/m8/feeds/contacts/default/full?v=3.0&alt=json&q=john&max-results=10&orderby=lastmodified&sortorder=descending

Notice, the v=3.0 is a must for full text search!

Oded Breiner
  • 25,024
  • 9
  • 99
  • 66