เอกสารนี้อธิบายวิธีเริ่มต้นใช้งาน Blogger API
ก่อนจะเริ่มต้น
สร้างบัญชี Google
ตรวจสอบว่าคุณได้ตั้งค่าบัญชี Google แล้ว เราขอแนะนำให้คุณใช้บัญชี Google แยกต่างหากเพื่อวัตถุประสงค์ในการพัฒนาและการทดสอบ เพื่อป้องกันไม่ให้ข้อมูลสูญหายโดยไม่ตั้งใจ หากมีบัญชีทดสอบอยู่แล้ว คุณก็พร้อมใช้งานได้เลย โดยสามารถไปที่อินเทอร์เฟซผู้ใช้ Blogger เพื่อตั้งค่า แก้ไข หรือดูข้อมูลทดสอบ
ทำความคุ้นเคยกับ Blogger
หากคุณไม่คุ้นเคยกับแนวคิดของ Blogger ให้อ่านเอกสารนี้และทดลองใช้อินเทอร์เฟซผู้ใช้ก่อนเริ่มเขียนโค้ด เอกสารนี้ถือว่าคุณคุ้นเคยกับ Blogger, แนวคิดการเขียนโปรแกรมบนเว็บ และรูปแบบข้อมูลเว็บ
ดูข้อมูลเกี่ยวกับการให้สิทธิ์คำขอและการระบุแอปพลิเคชันของคุณ
เมื่อแอปพลิเคชันขอข้อมูลส่วนตัว คำขอจะต้องได้รับสิทธิ์ จากผู้ใช้ที่ตรวจสอบสิทธิ์แล้วซึ่งมีสิทธิ์เข้าถึงข้อมูลดังกล่าว
เมื่อแอปพลิเคชันขอข้อมูลสาธารณะ คำขอไม่จำเป็นต้องได้รับอนุญาต แต่ต้องมีตัวระบุ เช่น คีย์ API
ดูข้อมูลเกี่ยวกับวิธีให้สิทธิ์คำขอและใช้คีย์ API ได้ที่การให้สิทธิ์คำขอและ การระบุแอปพลิเคชันของคุณในเอกสารการใช้ API
ข้อมูลพื้นฐานเกี่ยวกับ Blogger API
แนวคิดเกี่ยวกับ Blogger
Blogger สร้างขึ้นจากแนวคิดพื้นฐาน 5 ประการดังนี้
- บล็อก: แนวคิดหลักของ API บล็อกมีโพสต์และ หน้าเว็บ นี่คือคอนเทนเนอร์สำหรับข้อมูลเมตาของบล็อก เช่น ชื่อบล็อกและ คำอธิบาย
- โพสต์: บล็อกโพสต์คือรายการที่เผยแพร่ได้ซึ่งผู้เขียนบล็อกสร้างขึ้น ข้อมูลนี้มีจุดประสงค์เพื่อให้ทันต่อเหตุการณ์และสะท้อนสิ่งที่ผู้เขียนต้องการเผยแพร่ต่อโลกในขณะนี้ เราเข้าใจว่าเมื่อเวลาผ่านไป เนื้อหาในบล็อกโพสต์จะเก่าและมีความเกี่ยวข้องน้อยลง
- ความคิดเห็น: ความคิดเห็นคือส่วนที่ผู้ใช้คนอื่นๆ ที่ไม่ใช่ผู้เขียนโพสต์ในบล็อก แสดงความคิดเห็นต่อสิ่งที่ผู้เขียนเขียน ตั้งแต่ก้อนอิฐไปจนถึง ช่อดอกไม้
- หน้า: หน้าคือพื้นที่สำหรับเนื้อหาแบบคงที่ เช่น ข้อมูลชีวประวัติ หรือวิธีติดต่อผู้ใช้ โดยทั่วไปแล้ว ข้อมูลนี้เป็นข้อมูลที่ไม่มีวันหมดอายุ และไม่ได้เปลี่ยนแปลงบ่อยนัก
- ผู้ใช้: ผู้ใช้คือบุคคลที่โต้ตอบกับ Blogger ไม่ว่าจะเป็นในฐานะผู้เขียน ผู้ดูแลระบบ หรือเพียงแค่ผู้อ่าน สำหรับบล็อกสาธารณะ ผู้อ่านอาจไม่ระบุตัวตน แต่ในบล็อกส่วนตัว Blogger จะต้องระบุตัวตนของผู้อ่าน
โมเดลข้อมูล Blogger API
ทรัพยากรคือเอนทิตีข้อมูลแต่ละรายการที่มีตัวระบุที่ไม่ซ้ำกัน Blogger JSON API ทำงานกับทรัพยากร 5 ประเภท ได้แก่
- แหล่งข้อมูลบล็อก: แสดงถึงบล็อก
- ทรัพยากรโพสต์: แสดงถึงโพสต์ โดยทรัพยากรโพสต์แต่ละรายการเป็น ทรัพยากรย่อยของทรัพยากรบล็อก
- แหล่งข้อมูลความคิดเห็น: แสดงความคิดเห็นในโพสต์ที่เฉพาะเจาะจง แหล่งข้อมูลความคิดเห็นแต่ละรายการเป็นองค์ประกอบย่อยของแหล่งข้อมูลโพสต์
- แหล่งข้อมูลหน้าเว็บ: แสดงหน้าเว็บแบบคงที่ แหล่งข้อมูลหน้าเว็บแต่ละรายการเป็นองค์ประกอบย่อยของแหล่งข้อมูลบล็อก
- ทรัพยากรผู้ใช้: แสดงถึงผู้ใช้ที่ไม่ใช่ผู้ใช้ที่ไม่ระบุตัวตน ใช้เพื่อระบุผู้เขียนหน้าเว็บ โพสต์ หรือความคิดเห็น
โมเดลข้อมูลของ Blogger API อิงตามกลุ่มทรัพยากรที่เรียกว่าคอลเล็กชัน ดังนี้
- คอลเล็กชันบล็อก
- คอลเล็กชันบล็อกประกอบด้วยบล็อกทั้งหมดที่ผู้ใช้มีสิทธิ์เข้าถึง คุณแสดงรายการบล็อกตามผู้ใช้ หรือดึงข้อมูลบล็อกเดียวตามรหัสได้</span="apicollection">
- คอลเล็กชันโพสต์
- คอลเล็กชันโพสต์ประกอบด้วยแหล่งข้อมูลโพสต์ทั้งหมดภายในแหล่งข้อมูลบล็อกที่เฉพาะเจาะจง
- การรวบรวมความคิดเห็น
- คอลเล็กชันความคิดเห็นประกอบด้วยทรัพยากรความคิดเห็นทั้งหมดภายในทรัพยากรโพสต์ที่เฉพาะเจาะจง
- คอลเล็กชันหน้าเว็บ
- คอลเล็กชันหน้าเว็บประกอบด้วยทรัพยากรหน้าเว็บทั้งหมดภายในทรัพยากรบล็อกที่เฉพาะเจาะจง
- คอลเล็กชันผู้ใช้
- คอลเล็กชันผู้ใช้ประกอบด้วยทรัพยากรผู้ใช้ทั้งหมดใน Blogger จึงแสดงรายการไม่ได้
ผู้ใช้สามารถดึงข้อมูลแหล่งข้อมูลผู้ใช้ของตนเอง
(แต่ไม่ใช่ของผู้ใช้อื่น) ได้โดยใช้รหัสหรือโดยใช้ตัวระบุ
self
การดำเนินการของ Blogger API
คุณเรียกใช้เมธอดต่างๆ ในคอลเล็กชันและทรัพยากร ใน Blogger API ได้ตามที่อธิบายไว้ในตารางต่อไปนี้
| การดำเนินการ | คำอธิบาย | การแมป HTTP ของ REST |
|---|---|---|
| list | แสดงรายการทรัพยากรทั้งหมดภายในคอลเล็กชัน | GET ใน URI ของคอลเล็กชัน |
| รับ | รับทรัพยากรที่เฉพาะเจาะจง | GET ใน URI ทรัพยากร |
| getByUrl | รับทรัพยากรโดยค้นหาตาม URL | GET โดยมี URL ที่ส่งเป็นพารามิเตอร์ |
| getByPath | รับทรัพยากรโดยค้นหาตามเส้นทาง | GET โดยมีเส้นทางที่ส่งผ่านเป็นพารามิเตอร์ |
| listByUser | แสดงรายการทรัพยากรที่ผู้ใช้เป็นเจ้าของ | GET ในคอลเล็กชันที่ผู้ใช้เป็นเจ้าของ |
| search | ค้นหาแหล่งข้อมูลโดยอิงตามพารามิเตอร์การค้นหา | GET ใน URL การค้นหา โดยส่งคำค้นหาเป็นพารามิเตอร์ |
| แทรก | สร้างทรัพยากรในคอลเล็กชัน | POST ใน URI ของคอลเล็กชัน |
| ลบ | ลบทรัพยากร | DELETE ใน URI ทรัพยากร |
| patch | อัปเดตทรัพยากรโดยใช้ความหมายของ Patch | PATCH ใน URI ทรัพยากร |
| อัปเดต | อัปเดตทรัพยากร | PUT ใน URI ทรัพยากร |
ตารางด้านล่างแสดงวิธีการที่แหล่งข้อมูลแต่ละประเภทรองรับ การดำเนินการ list และ get ทั้งหมดในบล็อกส่วนตัวต้องใช้การตรวจสอบสิทธิ์
ประเภททรัพยากร |
วิธีการที่รองรับ |
|||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| list | get | getByUrl | getByPath | listByUser | search | แทรก | ลบ | patch | อัปเดต | |
| บล็อก | ไม่ | ใช่ | ใช่ | ไม่ | ใช่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ |
| โพสต์ | ใช่ | ใช่ | ไม่ | ใช่ | ไม่ | ใช่ | ใช่ค่ะ | ใช่ค่ะ | ใช่ค่ะ | ใช่ |
| ความคิดเห็น | ใช่ | ใช่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ |
| หน้า | ใช่ | ใช่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ |
| ผู้ใช้ | ไม่ | ใช่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ | ไม่ |
รูปแบบการโทร
คุณเรียกใช้ API ได้หลายวิธี ดังนี้
- ใช้ REST โดยตรงหรือจาก JavaScript (ไม่จำเป็นต้องใช้โค้ดฝั่งเซิร์ฟเวอร์)
- การใช้ไลบรารีของไคลเอ็นต์
REST
REST เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่ให้แนวทางที่สะดวกและสอดคล้องกันในการขอและแก้ไขข้อมูล
คำว่า REST ย่อมาจาก "Representational State Transfer" ในบริบทของ Google API คำนี้หมายถึงการใช้คำกริยา HTTP เพื่อดึงและแก้ไขการแสดงข้อมูลที่ Google จัดเก็บไว้
ในระบบ RESTful ระบบจะจัดเก็บทรัพยากรในที่เก็บข้อมูล ไคลเอ็นต์จะส่งคำขอให้เซิร์ฟเวอร์ดำเนินการใดดำเนินการหนึ่ง (เช่น สร้าง เรียกข้อมูล อัปเดต หรือลบทรัพยากร) และเซิร์ฟเวอร์จะดำเนินการและส่งการตอบกลับ ซึ่งมักจะอยู่ในรูปแบบของการแสดงทรัพยากรที่ระบุ
ใน RESTful API ของ Google ไคลเอ็นต์จะระบุการดำเนินการโดยใช้คำกริยา HTTP เช่น POST, GET, PUT หรือ DELETE โดยจะระบุทรัพยากรด้วย URI ที่ไม่ซ้ำกันทั่วโลกในรูปแบบต่อไปนี้
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
เนื่องจากทรัพยากร API ทั้งหมดมี URI ที่เข้าถึงได้ผ่าน HTTP ที่ไม่ซ้ำกัน REST จึงเปิดใช้การแคชข้อมูลและได้รับการเพิ่มประสิทธิภาพให้ทำงานร่วมกับโครงสร้างพื้นฐานแบบกระจายของเว็บได้
คุณอาจพบว่าคำจำกัดความของเมธอดในเอกสารประกอบมาตรฐาน HTTP 1.1 มีประโยชน์ ซึ่งรวมถึงข้อกำหนดสำหรับ GET, POST, PUT และ DELETE
REST ใน Blogger API
การดำเนินการของ Blogger ที่รองรับจะแมปกับคำกริยา HTTP ของ REST โดยตรง ตามที่อธิบายไว้ในการดำเนินการของ Blogger API
รูปแบบที่เฉพาะเจาะจงสำหรับ URI ของ Blogger API มีดังนี้
https://www.googleapis.com/blogger/v3/users/userId https://www.googleapis.com/blogger/v3/users/self https://www.googleapis.com/blogger/v3/users/userId/blogs https://www.googleapis.com/blogger/v3/users/self/blogs https://www.googleapis.com/blogger/v3/blogs/blogId https://www.googleapis.com/blogger/v3/blogs/byurl https://www.googleapis.com/blogger/v3/blogs/blogId/posts https://www.googleapis.com/blogger/v3/blogs/blogId/posts/bypath https://www.googleapis.com/blogger/v3/blogs/blogId/posts/search https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments/commentId https://www.googleapis.com/blogger/v3/blogs/blogId/pages https://www.googleapis.com/blogger/v3/blogs/blogId/pages/pageId
คำอธิบายแบบเต็มของ URI ที่ใช้และผลลัพธ์สำหรับการดำเนินการที่รองรับแต่ละรายการใน API จะสรุปไว้ในเอกสารข้อมูลอ้างอิง Blogger API
ตัวอย่าง
แสดงรายการบล็อกที่ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์มีสิทธิ์เข้าถึง
GET https://www.googleapis.com/blogger/v3/users/self/blogs?key=YOUR-API-KEY
รับโพสต์ในบล็อก code.blogger.com ซึ่งมีรหัสบล็อก 3213900
GET https://www.googleapis.com/blogger/v3/blogs/3213900?key=YOUR-API-KEY
REST จาก JavaScript
คุณเรียกใช้ Blogger API จาก JavaScript ได้โดยใช้
callback พารามิเตอร์การค้นหาและระบุฟังก์ชันเรียกกลับ
เมื่อเบราว์เซอร์โหลดสคริปต์ ระบบจะเรียกใช้ฟังก์ชัน Callback และส่งการตอบกลับไปยังฟังก์ชัน Callback แนวทางนี้ช่วยให้คุณ
เขียนแอปพลิเคชันที่สมบูรณ์ซึ่งแสดงข้อมูล Blogger ได้โดยไม่ต้องใช้โค้ดฝั่งเซิร์ฟเวอร์
ตัวอย่างต่อไปนี้จะดึงข้อมูลโพสต์จากบล็อก code.blogger.com หลังจากที่คุณแทนที่ YOUR-API-KEY ด้วยคีย์ API ของคุณ
<html>
<head>
<title>Blogger API Example</title>
</head>
<body>
<div id="content"></div>
<script>
function handleResponse(response) {
document.getElementById("content").innerHTML += "<h1>" + response.title + "</h1>" + response.content;
}
</script>
<script
src="https://www.googleapis.com/blogger/v3/blogs/3213900/posts/8398240586497962757?callback=handleResponse&key=YOUR-API-KEY"></script>
</body>
</html>รูปแบบข้อมูล
JSON
JSON (JavaScript Object Notation) เป็นรูปแบบข้อมูลทั่วไปที่ไม่ขึ้นกับภาษา ซึ่งแสดงโครงสร้างข้อมูลที่กำหนดเองในรูปแบบข้อความอย่างง่าย สำหรับข้อมูลเพิ่มเติม โปรดดู json.org