เอกสารนี้จะอธิบายวิธีใช้ Custom Search JSON API
การส่งคำขอ
REST หรือ Sentational State Transfer ใน Custom Search JSON API ค่อนข้างแตกต่างจาก REST แบบดั้งเดิม โดย API จะให้สิทธิ์เข้าถึงบริการแทนการให้สิทธิ์เข้าถึงทรัพยากร ดังนั้น API จึงมี URI รายการเดียวซึ่งทำหน้าที่เป็นปลายทางของบริการ
คุณสามารถดึงผลลัพธ์สำหรับการค้นหาบางอย่างได้โดยการส่ง HTTP GET
ไปยัง URI ของตนเอง คุณได้ส่งรายละเอียดของคำขอค้นหาเป็น
พารามิเตอร์การค้นหา รูปแบบสำหรับ URI ของ Custom Search JSON API คือ
https://www.googleapis.com/customsearch/v1?[parameters]
คำขอการค้นหาแต่ละรายการต้องมีคำค้นหา [parameters]
จำนวน 3 รายการ ได้แก่
- คีย์ API - ใช้พารามิเตอร์การค้นหา
key
เพื่อ ระบุแอปพลิเคชันของคุณ Programmable Search Engine ID - ใช้
cx
เพื่อระบุ Programmable Search Engine ที่ต้องการใช้ในการค้นหานี้ เครื่องมือค้นหาต้องสร้างโดยใช้แผงควบคุม หมายเหตุ: รหัสเครื่องมือค้นหา (cx) อาจมีรูปแบบอื่น (เช่น 8ac1ab64606d234f1)คำค้นหา - ใช้พารามิเตอร์การค้นหา
q
เพื่อระบุนิพจน์การค้นหา
พารามิเตอร์การค้นหาอื่นๆ ทั้งหมดเป็นตัวเลือกที่ไม่บังคับ
นี่คือตัวอย่างของคำขอที่ค้นหา ทดสอบ Programmable Search Engine สำหรับการบรรยาย ดังนี้
GET https://www.googleapis.com/customsearch/v1?key=INSERT_YOUR_API_KEY&cx=017576662512468239146:omuauf_lfve&q=lectures
พารามิเตอร์การค้นหา
พารามิเตอร์ที่คุณส่งในคำขอได้มี 2 ประเภท ได้แก่
- พารามิเตอร์เฉพาะ API - กำหนดพร็อพเพอร์ตี้ของการค้นหา เช่น นิพจน์การค้นหา จำนวนผลการค้นหา ภาษา เป็นต้น
- พารามิเตอร์การค้นหาแบบมาตรฐาน - กำหนดข้อมูลด้านเทคนิคสำหรับคำขอของคุณ เช่น คีย์ API
ค่าพารามิเตอร์ทั้งหมดต้องเป็น URL ที่เข้ารหัส
พารามิเตอร์การค้นหาเฉพาะ API
ส่งคำขอพารามิเตอร์ที่ใช้กับ Custom Search JSON API โดยเฉพาะ และระบุ คำขอค้นหาจะสรุปไว้ใน การอ้างอิง
พารามิเตอร์การค้นหามาตรฐาน
พารามิเตอร์การค้นหาที่ใช้กับการดำเนินการ JSON API ของ Custom Search ทั้งหมดมีการบันทึกไว้ที่ พารามิเตอร์ระบบ
ข้อมูลการตอบกลับ
หากคำขอประสบความสำเร็จ เซิร์ฟเวอร์จะตอบสนองด้วยรหัสสถานะ HTTP 200 OK
และข้อมูลการตอบสนองในรูปแบบ JSON คุณดูข้อมูลคำตอบได้
ในข้อมูลอ้างอิง
ข้อมูลการตอบสนองคือออบเจ็กต์ JSON ที่มีประเภท พร็อพเพอร์ตี้:
- ข้อมูลเมตาที่อธิบายการค้นหาที่ขอ (และอาจรวมถึงคำขอการค้นหาที่เกี่ยวข้อง)
- ข้อมูลเมตาที่อธิบาย Programmable Search Engine
- ผลการค้นหา
สำหรับคำอธิบายโดยละเอียดของแต่ละพร็อพเพอร์ตี้ โปรดดู การอ้างอิง
ค้นหาข้อมูลเมตาของคำขอ
ข้อมูลเมตาของการค้นหาประกอบด้วย
- พร็อพเพอร์ตี้
url
ซึ่งมี ข้อมูลเกี่ยวกับเทมเพลต OpenSearch ซึ่งใช้สำหรับผลลัพธ์ที่แสดงในคำขอนี้ queries
ซึ่งเป็นอาร์เรย์ของ ที่อธิบายลักษณะของการค้นหาที่เป็นไปได้ ชื่อของแต่ละ ในอาร์เรย์เป็นชื่อ บทบาทคำค้นหา OpenSearch หรือบทบาทที่กำหนดเอง 1 ใน 2 บทบาทที่กำหนดโดย API นี้previousPage
และnextPage
ออบเจ็กต์บทบาทในการค้นหาที่เป็นไปได้ รวมข้อมูลต่อไปนี้request
: ข้อมูลเมตาที่อธิบายการค้นหาสำหรับชุดปัจจุบันของ ผลลัพธ์- บทบาทนี้จะปรากฏในคำตอบเสมอ
- ซึ่งจะเป็นอาร์เรย์ที่มีเพียงเอลิเมนต์เดียวเสมอ
nextPage
: ข้อมูลเมตาที่อธิบายการค้นหาที่จะใช้ในอนาคต หน้าผลการค้นหา- บทบาทนี้จะไม่ปรากฏ หากผลลัพธ์ปัจจุบันเป็นหน้าสุดท้าย หมายเหตุ: API นี้แสดงผลลัพธ์สูงสุด 100 รายการแรกเท่านั้น
- หากมี จะเป็นอาร์เรย์ที่มีเพียงอีลิเมนต์เดียวเสมอ
previousPage
: ข้อมูลเมตาที่อธิบายการค้นหาที่จะใช้ หน้าผลลัพธ์ก่อนหน้า- ไม่แสดงหากผลลัพธ์ปัจจุบันคือหน้าแรก
- หากมี จะเป็นอาร์เรย์ที่มีเพียงอีลิเมนต์เดียวเสมอ
ข้อมูลเมตาของเครื่องมือค้นหา
พร็อพเพอร์ตี้ context
มีข้อมูลเมตาที่อธิบายเครื่องมือค้นหา
ที่ดำเนินการค้นหา ซึ่งประกอบด้วยชื่อของเครื่องมือค้นหา และ
ออบเจ็กต์ด้านประกอบทั้งหมดที่มีให้
การปรับแต่งการค้นหา
ผลการค้นหา
อาร์เรย์ items
มีผลการค้นหาจริง การค้นหา
จะมี URL, ชื่อ และตัวอย่างข้อความที่อธิบายผลการค้นหานั้น ใน
อาจมีตัวอย่างข้อมูลสื่อสมบูรณ์
ในกรณีที่เกี่ยวข้อง
หากผลการค้นหามีพร็อพเพอร์ตี้ promotions
จะมี
ชุดโปรโมชัน
REST จาก JavaScript
คุณสามารถเรียกใช้ Custom Search JSON API โดยใช้ REST จาก JavaScript โดยใช้เมธอด
พารามิเตอร์การค้นหา callback
และฟังก์ชัน Callback ซึ่งช่วยให้คุณ
เพื่อเขียนแอปพลิเคชันสื่อสมบูรณ์ที่แสดงข้อมูล Programmable Search Engine โดยไม่ต้องเขียน
รหัสฝั่งเซิร์ฟเวอร์
ตัวอย่างต่อไปนี้ใช้วิธีนี้เพื่อแสดงหน้าแรกของการค้นหา ผลการค้นหาสำหรับข้อความค้นหา cars:
<html>
<head>
<title>Custom Search JSON API Example</title>
</head>
<body>
<div id="content"></div>
<script>
function hndlr(response) {
for (var i = 0; i < response.items.length; i++) {
var item = response.items[i];
// Make sure HTML in item.htmlTitle is escaped.
document.getElementById("content").append(
document.createElement("br"),
document.createTextNode(item.htmlTitle)
);
}
}
</script>
<script src="https://www.googleapis.com/customsearch/v1?key=YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=cars&callback=hndlr">
</script>
</body>
</html>