2017-04-17 84 views
1

最近一個客戶的網站開始張貼在控制檯以下警告:從Google自定義搜索API v1遷移到v2?

此頁面調用舊版本的自定義搜索API,它被廢棄了,將很快停止工作。爲了避免搜索結果中斷,搜索結果的調用必須更新爲最新版本的自定義搜索API https://developers.google.com/custom-search/docs/element

在尋找周圍試圖找出如何處理這個問題我已經遇到this forum post,並隨後公佈本身的this post,但沒有明確的API遷移文件(即「如果你這樣做,你應該替換此功能與其他功能「)

有沒有人做過這些誰可能知道在哪裏可以找到潛在的陷阱列表,同時升級和/或什麼具體說明什麼要替換或我會被卡在閱讀通過兩個呼叫之間的API和兩個比較?

+0

我認爲博客文章告訴你該怎麼做不是嗎? https://customsearch.googleblog.com/2017/02/refocusing-and-looking-forward-on.html – DaImTo

+0

@DaImTo沒有列出直接轉換路徑。即「如果您正在進行此調用,這是API中每個條目的替代調用」。 – CoryG

回答

0

我知道這是晚了幾個月,但我剛剛在我的網站上解決了這個問題。這是很多嘗試和錯誤,但我現在有Google Custom Search,使用API​​ v2,在我的網站上工作。我們的Google自定義搜索元素被配置爲執行「雙頁」顯示,其中搜索框元素與搜索結果元素分開。

以前的管理員使用CSE APIv1和Google的Java API構建了我的網站的搜索功能。你知道你的網站使用谷歌與自定義搜索的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,那麼您實際上只需將Search Results元素轉換爲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」文件包含了所有的細節我們的機構CSE控制檯,包括我們的XXX:YYY ID。

使用Google的Java API將數據移植到GCS,而不是在搜索框元素中使用GCSE API(任何版本)的一大優勢是,它允許搜索框在搜索結果頁面上工作。使用只有 GCSE API,不允許將searchbox-only和searchresults-only元素添加到同一頁面(Drupal節點)。