从Google Custom Search API v1迁移到v2?

时间:2017-04-17 15:17:51

标签: google-api google-custom-search

最近,一个客户端站点开始在控制台中发布以下警告:

  

此页面调用了旧版本的自定义搜索API,该版本已弃用,很快就会停止运行。为避免搜索结果中断,必须将搜索结果调用更新为当前版本的自定义搜索API https://developers.google.com/custom-search/docs/element

在搜索试图找出如何处理这个问题的过程中,我发现了this forum post以及随后this post公告本身,但没有明确的API迁移文档(即"如果你这样做,你应该用这个其他功能替换这个功能。")

有没有人这样做过,谁可能知道在升级时哪里可以找到潜在陷阱列表和/或有关替换内容的任何特定说明,或者我将不得不阅读两个呼叫之间的API打电话并对两者进行比较?

1 个答案:

答案 0 :(得分:0)

我知道这已经晚了几个月,但我刚刚在我的网站上解决了这个问题。这是一个很多试验和错误,但我现在使用API​​自定义搜索,使用API​​ v2,在我的网站上工作。我们的Google自定义搜索元素配置为执行“双页”显示,其中“搜索框”元素与“搜索结果”元素分开。

之前的管理员使用CSE APIv1和Google的Java API构建了我网站的搜索功能。您知道,如果您的搜索框和/或搜索结果的代码包含以下顶部附近的内容,那么您的网站正在使用Google的Java API和自定义搜索:

<script src="//www.google.com/jsapi" type="text/javascript"></script> //Call to Google's Java API
<script type="text/javascript">// <![CDATA[
google.load('search', '1');
. . . some other Java functions . . . 
// ]]></script>

<form>
<input to javascript function X()>
<input text from user>
<input submit button>
</form>

如上所示,前一个管理员还有一个非常简单的HTML表单元素,用于从用户获取数据。然后将此数据提供给设计用于与GCSE搜索框元素接口的javascript函数。

保留您的网站用于搜索框元素的javascript / HTML代码;丢失搜索结果元素的javascript / HTML。如果您的网站使用Google的Java API,您只需要将搜索结果元素转换为GCSE API v2。顺便说一句,我们在Drupal 7区块内的网站上做了所有这些。

我需要对搜索框元素进行的唯一更改是删除上面代码摘录中的第3行 - 'google.load('search','1');.

我删除了之前为搜索结果元素/页面(我们的resultsUrl)构建的所有代码,并将其替换为:

<script src="sites/all/themes/eu/js/gsearch.js" type="text/javascript"></script>
<gcse:searchresults-only></gcse:searchresults-only>

本地存储的'gsearch.js'文件包含有关我们orginazation的CSE控制台的所有详细信息,包括我们的XXX:YYY ID。

使用Google的Java API将数据移植到GCS,而不是使用搜索框元素中的GCSE API(任何版本),它的一大优势在于它允许搜索框甚至在搜索结果页面上工作。仅使用 GCSE API,不允许只将searchbox和searchresults-only元素添加到同一页面(Drupal节点)。