Google Contacts API v3 Java客户端库全文搜索不起作用 - java

Contacts API v3,组查询参数不支持“ q”参数?在Google Contacts API v3中,明确表示支持该功能。但是,当我使用Google提供的Java客户端库通过setFullTextQuery在查询中搜索合同组时,却收到HTTP状态403禁止访问。抛出“线程“主”中的异常” com.google.gdata.util.ServiceForbiddenException:禁止
此服务不支持“ q”参数。”

我已经下载了最新的Java客户端库:用于GDATA的GData-Java / 1.47.1(gzip)。尝试使用setFullTextQuery方法搜索联系人组。

哪些步骤将重现该问题?

设置Java示例联系人
在ContactsExample.java中的queryEntries方法中,添加新行。 myQuery.setFullTextQuery(“此处为您的搜索词”);
并运行它

我检查版本是否正确,它使用的是GData-Version:3.0
如果运行提供的示例Java,则一切运行正常。但是,我需要搜索联系人。使用“ q”参数应该是正确的方法。

请帮忙。库中是否有问题,还是我需要采用其他方法来搜索联系人?

日志如下:

执行动作:QUERY

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest setPrivateHeader
罚款:授权:

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest setHeader
罚款:用户代理:Google-contactsExampleApp-3 GContacts-Java / 3.1.0 GData-Java / 1.47.1(gzip)

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest setHeader
罚款:接受编码:gzip

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest setHeader
罚款:GData版本:3.0

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:403禁止

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:null:禁止使用HTTP / 1.1 403

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:X框架选项:SAMEORIGIN

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:转帐编码:分块

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
FINER:Date:Wed,28 Nov 2012 17:38:48 GMT

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
FINER:Expires:Wed,28 Nov 2012 17:38:48 GMT

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:X-XSS-Protection:1;模式=阻止

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:内容编码:gzip

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
FINER:Content-Type:text / html;字符集= UTF-8

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
FINER:服务器:GSE

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:缓存控制:私有,最大年龄= 0

2012年11月28日12:38:48 com.google.gdata.client.http.HttpGDataRequest执行
罚款:X内容类型选项:nosniff

线程“主”中的com.google.gdata.util.ServiceForbiddenException异常:禁止
此服务不支持“ q”参数。

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结果:1

参考方案

这里只是一个长镜头,因为您还没有发布任何代码...

您似乎尚未通过身份验证并设置了执行查询的用户。

即您可能需要在查询中添加以下内容:

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

希望我有所帮助。

Google Distance Matrix API-火车距离 - java

我正在使用带有Java的Google Distance Matrix API。我想计算两个城市之间的火车距离。其中一个城市没有火车站。问题是,谷歌不只是计算火车距离。它始终会增加从没有火车站的城市到有火车站的下一个城市的汽车行驶距离。但是对于我的项目,我只需要火车距离。这是我的代码的一部分:DistanceMatrix matrix = DistanceMa…

Google Calendar API未收到确认响应 - java

我们已经在Java中完成了Google Calendar API的集成,我们能够发送会议请求,并且与会者可以接收该请求。但是,当与会者单击邮件中的“是”或“否”按钮时,响应存在一些问题,组织者将无法获得响应。问题是,当与会者试图接受或拒绝会议时,组织者没有得到回应。 java参考方案 我怀疑您尚未在事件上设置推送notifications,然后将通知您更改并…

Google Drive API访问我自己的帐户 - java

我希望在服务器/笔记本电脑上运行一个简单的过程,每天将文件每天上传一次到Google驱动器中。我不想分享此信息,不允许其他用户使用它等。我发现的所有示例似乎都涉及浏览到一个地址以获得用户(我)的许可,然后获取身份验证代码等并继续参考:Java quickstart有没有一种方法/示例可以做到这一点而无需浏览器,每次我只想为自己的帐户获得许可时都获得唯一的身份…

检查Optional中是否存在null属性,并返回String Java Stream API - java

我有以下class Person private String firstName; private String familyName; // Setters and Getters 我有以下方法public String getFullName(Optional<Person> persons) { return persons .map(p…

Java 8-Streams API-在LIST上操作 - java

我有一个包含以下内容的ArrayList-CHENNAI,MUMBAI,DELHI,CHENNAI,DELHI,CHENNAI。另外,假设将这3个城市名称定义为ENUM,并针对每个城市指定一个值。 (CHENNAI = 1,MUMBAI = 2和DELHI = 3)在Java 8 Streams中,我能够计算城市值的总和,在这种情况下,城市值的总和将为1 +…