ใน Google มีบอกไว้หมดเลยครับ ทั้งวิธีการต่อ ค่าที่ต้องส่งไป ค่าที่ได้รับคืนมา ถ้าเป็น api รุ่นเก่าจะใช้ SOAP แล้วคืนค่ากลับมาเป็น xml แต่ดึงได้แค่ 2,000 queries ต่อวัน
แต่ถ้าเป็นตัวใหม่จะเป็น ajax ซึ่งสามารถคืนค่าออกมาเป็น array ได้เลย สะดวกมากๆ แต่จำไม่ได้ว่า query ได้เท่าไหร่ต่อวัน
ตัวอย่างเล็กๆ น้อยๆ เอาไปเป็นแนวทางนะครับ
Search API
$baseurl = 'http://api.google.com/search/beta2';
$params = array(
'key' => $id, // API key
'q' => $_GET[query],
'start' => 0,
'maxResults' => 10,
'filter' => true,
'restrict' => '',
'safeSearch' => true,
'lr' => 'lang_en|lang_fr',
'ie' => '',
'oe' => ''
);
$soapclient = new soapclient($baseurl);
$data = $soapclient->call("doGoogleSearch", $params,
"urn:GoogleSearch", "urn:GoogleSearch");
print_r($data);
Ajax Search API
<script src="http://www.google.com/uds/api?file=uds.js&v=0.1&key=<? echo $APIKey; ?>" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var gWebSearch;
function OnLoad() {
// Initialize the web searcher
gWebSearch = new GwebSearch();
gWebSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
gWebSearch.setSearchCompleteCallback(null, OnWebSearch);
gWebSearch.execute("<? echo $_GET[q]; ?>");
}
function OnWebSearch() {
if (!gWebSearch.results) return;
var searchresults = document.getElementById("searchresults");
searchresults.innerHTML = "";
var results = "";
for (var i = 0; i < gWebSearch.results.length; i++) {
var thisResult = gWebSearch.results[i];
results += "<p>";
results += "<a href=\"" + thisResult.url + "\">" + thisResult.title + "<\/a><br \/>";
results += thisResult.content + "<br \/>";
results += "<span class=\"url\">" + thisResult.url + "<\/span>";
if (thisResult.cacheUrl) {
results += " - <a class=\"cached\" href=\"" + thisResult.cacheUrl + "\">Cached <\/a>";
}
results += "<\/p>";
}
searchresults.innerHTML = results;
}
//]]>
</script>