Blogger JSON API: เริ่มต้นใช้งาน

สำคัญ: เราจะหยุดรองรับ JSON API เวอร์ชัน 2.0 ในวันที่ 30 กันยายน 2024 โปรดอัปเดตแอปพลิเคชันที่ใช้ JSON API เวอร์ชัน 2.0 เป็น API เวอร์ชันล่าสุดเพื่อให้ทำงานอย่างต่อเนื่อง หากต้องการดูเวอร์ชันล่าสุด ให้ใช้ลิงก์ในแถบนำทางด้านซ้าย

เอกสารนี้อธิบายวิธีเริ่มต้นใช้งาน Blogger JSON API

เนื้อหา

เกริ่นนำ

เอกสารนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการเขียนแอปพลิเคชันที่โต้ตอบกับ Blogger JSON API ได้

Blogger JSON API ขยายการใช้งาน Blogger Data API เวอร์ชัน 2.0 หากต้องการเรียกดูข้อมูลจาก Blogger ในรูปแบบ JSON แทน XML ให้ใช้ Blogger JSON API หากต้องการเรียกข้อมูลในรูปแบบ XML ให้ใช้ Blogger Data API

ขณะนี้ Blogger JSON API เวอร์ชันนี้เป็นแบบอ่านอย่างเดียว แต่เรามีแผนที่จะเพิ่มความสามารถในการอ่าน/เขียน รวมถึงความสามารถอื่นๆ คุณสามารถขอฟีเจอร์อื่นๆ ได้ใน ฟอรัมความช่วยเหลือของ Blogger

ก่อนจะเริ่ม

รับบัญชี Google

ตรวจสอบว่าคุณได้ตั้งค่าบัญชี Google แล้ว เราขอแนะนำให้คุณใช้บัญชี Google แยกต่างหากสำหรับจุดประสงค์ในการพัฒนาและทดสอบ เพื่อปกป้องตัวคุณเองจากการสูญหายของข้อมูลโดยไม่ตั้งใจ หากมีบัญชีทดสอบอยู่แล้ว คุณก็พร้อมแล้ว คุณสามารถไปที่อินเทอร์เฟซผู้ใช้ของ Blogger เพื่อตั้งค่า แก้ไข หรือดูข้อมูลการทดสอบได้

ทำความคุ้นเคยกับ Blogger

หากคุณไม่คุ้นเคยกับแนวคิดของ Blogger โปรดอ่านเอกสารนี้และทดลองใช้อินเทอร์เฟซผู้ใช้ก่อนเริ่มเขียนโค้ด เอกสารนี้จะถือว่าคุณคุ้นเคยกับ Blogger เกี่ยวกับแนวคิด การเขียนโปรแกรมบนเว็บ และรูปแบบข้อมูลเว็บ

ดูข้อมูลเกี่ยวกับการให้สิทธิ์คำขอและการระบุแอปพลิเคชัน

เมื่อแอปพลิเคชันขอข้อมูลส่วนตัว คำขอจะต้องได้รับสิทธิ์จากผู้ใช้ที่ตรวจสอบสิทธิ์แล้วซึ่งมีสิทธิ์เข้าถึงข้อมูลดังกล่าว

เมื่อแอปพลิเคชันขอข้อมูลสาธารณะ คำขอไม่จำเป็นต้องได้รับอนุญาต แต่ต้องมีตัวระบุร่วมด้วย เช่น คีย์ API

สำหรับข้อมูลเกี่ยวกับวิธีให้สิทธิ์คำขอและการใช้คีย์ API โปรดดูการให้สิทธิ์คำขอและการระบุแอปพลิเคชันในเอกสารการใช้ API

พื้นหลัง JSON API ของ Blogger

แนวคิดของ Blogger

Blogger สร้างขึ้นจากแนวคิดพื้นฐาน 5 ประการดังนี้

  • บล็อก: แนวคิดหลักของ API บล็อกจะมีโพสต์และหน้าเว็บ นี่คือคอนเทนเนอร์สำหรับข้อมูลเมตาของบล็อก เช่น ชื่อบล็อกและคำอธิบาย
  • โพสต์: บล็อกโพสต์คือรายการที่เผยแพร่ได้ซึ่งผู้เขียนบล็อกสร้างขึ้น ข้อมูลนี้มีวัตถุประสงค์เพื่อให้มีความทันท่วงที โดยสะท้อนให้เห็นถึงสิ่งที่ผู้แต่งต้องการเผยแพร่สู่สายตาชาวโลกในปัจจุบัน เป็นที่เข้าใจกันว่าเมื่อเวลาผ่านไป เนื้อหาในบล็อกโพสต์จะมีอายุมากขึ้นและมีความเกี่ยวข้องน้อยลง
  • ความคิดเห็น: ความคิดเห็นคือที่ที่ผู้อื่นที่ไม่ใช่ผู้เขียนบล็อกโพสต์จะโต้ตอบกับสิ่งที่ผู้เขียนเขียน ทุกอย่างตั้งแต่อิฐไปจนถึงช่อดอกไม้
  • หน้าเว็บ: หน้าเว็บคือที่ที่มีเนื้อหาแบบคงที่ เช่น ประวัติส่วนตัว หรือวิธีติดต่อผู้ใช้ ข้อมูลนี้เป็นข้อมูลที่คงอยู่ถาวรซึ่งมีการเปลี่ยนแปลงไม่บ่อยนัก
  • ผู้ใช้: ผู้ใช้คือบุคคลที่โต้ตอบกับ Blogger ไม่ว่าจะเป็นผู้ที่ทำหน้าที่เป็นผู้เขียน ผู้ดูแลระบบ หรือเพียงแค่ผู้อ่าน สำหรับบล็อกสาธารณะ ระบบอาจระบุชื่อผู้อ่าน แต่ Blogger จะต้องระบุผู้อ่านในบล็อกส่วนตัว

โมเดลข้อมูล JSON API ของ Blogger

ทรัพยากรคือเอนทิตีข้อมูลแต่ละรายการที่มีตัวระบุที่ไม่ซ้ำกัน Blogger JSON API ทำงานโดยใช้ทรัพยากร 5 ประเภทดังนี้

  • แหล่งข้อมูลของบล็อก: แสดงถึงบล็อก
  • แหล่งข้อมูลของโพสต์: แสดงถึงโพสต์ ทรัพยากรของโพสต์แต่ละรายการคือทรัพยากรย่อยของทรัพยากรของบล็อก
  • ทรัพยากรความคิดเห็น: หมายถึงความคิดเห็นในโพสต์ที่เฉพาะเจาะจง ทรัพยากรความคิดเห็นแต่ละรายการเป็นทรัพยากรย่อยของโพสต์
  • แหล่งข้อมูลหน้าเว็บ: แสดงหน้าเว็บแบบคงที่ ทรัพยากรของหน้าเว็บแต่ละหน้าเป็นรายการย่อยของทรัพยากรของบล็อก
  • แหล่งข้อมูลของผู้ใช้: แสดงถึงผู้ใช้ที่ระบุตัวบุคคล ค่านี้ใช้เพื่อระบุผู้เขียนของหน้าเว็บ โพสต์ หรือความคิดเห็น
ทรัพยากรของบล็อกมีแหล่งข้อมูลย่อยอยู่ 2 ประเภท คือ หน้าเว็บและโพสต์
          ทรัพยากรของโพสต์อาจมีรายการทรัพยากรความคิดเห็นย่อย
ภาพรวมของความสัมพันธ์ระหว่างทรัพยากร

โมเดลข้อมูล Blogger JSON API จะขึ้นอยู่กับกลุ่มทรัพยากรที่เรียกว่าคอลเล็กชัน ดังนี้

คอลเล็กชันบล็อก
<span="apicollection">คอลเล็กชันบล็อกประกอบด้วยบล็อกทั้งหมดที่ผู้ใช้มีสิทธิ์เข้าถึง คุณระบุบล็อกตามผู้ใช้หรือเรียกดูบล็อกเดียวตามรหัสได้</span="apicollection">
คอลเล็กชันโพสต์
คอลเล็กชันของโพสต์ประกอบด้วยแหล่งข้อมูลสำหรับโพสต์ทั้งหมดภายในแหล่งข้อมูลของบล็อกที่เฉพาะเจาะจง
การรวบรวมความคิดเห็น
คอลเล็กชันความคิดเห็นประกอบด้วยทรัพยากรความคิดเห็นทั้งหมดภายในทรัพยากรของโพสต์ที่เฉพาะเจาะจง
การรวบรวมหน้าเว็บ
คอลเล็กชันหน้าเว็บประกอบด้วยทรัพยากรของหน้าทั้งหมดภายในแหล่งข้อมูลของบล็อกที่เฉพาะเจาะจง
คอลเล็กชันผู้ใช้
คอลเล็กชันของผู้ใช้ประกอบด้วยทรัพยากรของผู้ใช้ทั้งหมดใน Blogger จึงแสดงรายการไม่ได้ ผู้ใช้สามารถเรียกดูทรัพยากรของผู้ใช้ของตนเองได้ (แต่ไม่ใช่ของผู้อื่น) ตามรหัสหรือใช้ตัวระบุ self

การดำเนินการ Blogger JSON API

คุณจะเรียกใช้คอลเล็กชันและทรัพยากรใน Blogger JSON API ได้ 2 วิธีตามที่อธิบายไว้ในตารางต่อไปนี้

การดำเนินการ คำอธิบาย การแมป HTTP ของ REST
list แสดงทรัพยากรทั้งหมดในคอลเล็กชัน GET ใน URI ของคอลเล็กชัน
รับ รับทรัพยากรที่เฉพาะเจาะจง GET บน URI ทรัพยากร

ตารางด้านล่างแสดงวิธีที่ทรัพยากรแต่ละประเภทรองรับ การดำเนินการ list และ get ทั้งหมดในบล็อกส่วนตัวต้องมีการตรวจสอบสิทธิ์

ประเภททรัพยากร
วิธีการที่รองรับ
รายการ รับ
บล็อก ใช่ ใช่
โพสต์ ใช่ ใช่
ความคิดเห็น ใช่ ใช่
หน้า ใช่ ใช่
ผู้ใช้ ไม่ ใช่

รูปแบบการโทร

การเรียกใช้ API มีหลายวิธีดังนี้

REST

REST คือสถาปัตยกรรมซอฟต์แวร์รูปแบบหนึ่งที่ให้แนวทางที่สะดวกและสอดคล้องกันในการส่งคำขอและแก้ไขข้อมูล

คำว่า REST ย่อมาจาก "การโอนสถานะตัวแทน" ในบริบทของ Google APIs คำว่า 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 JSON API

การดำเนินการของ Blogger ที่รองรับจะแมปกับคำกริยา HTTP ของ REST โดยตรง ตามที่อธิบายไว้ในการดำเนินการของ Blogger JSON API

รูปแบบเฉพาะสำหรับ URI ของ Blogger JSON API มีดังนี้

https://www.googleapis.com/blogger/v2/users/userId
https://www.googleapis.com/blogger/v2/users/self
https://www.googleapis.com/blogger/v2/users/userId/blogs
https://www.googleapis.com/blogger/v2/users/self/blogs

https://www.googleapis.com/blogger/v2/blogs/blogId/posts
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments/commentId
https://www.googleapis.com/blogger/v2/blogs/blogId/pages
https://www.googleapis.com/blogger/v2/blogs/blogId/pages/pageId

คำอธิบายทั้งหมดของ URI ที่ใช้และผลลัพธ์ของการดำเนินการที่รองรับแต่ละรายการใน API จะสรุปไว้ในเอกสารข้อมูลอ้างอิง JSON API ของ Blogger

ต่อไปนี้เป็นตัวอย่างบางส่วนของวิธีการทำงานใน Blogger JSON API

แสดงรายชื่อบล็อกที่ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์มีสิทธิ์การเข้าถึง

GET https://www.googleapis.com/blogger/v2/users/self/blogs?key=YOUR-API-KEY

รับโพสต์ในบล็อก code.blogger.com (ซึ่งมีรหัสบล็อก 3213900) ดังนี้

GET https://www.googleapis.com/blogger/v2/blogs/3213900?key=YOUR-API-KEY

REST จาก JavaScript

คุณเรียกใช้ Blogger JSON API ได้โดยใช้ REST จาก JavaScript โดยใช้พารามิเตอร์การค้นหา callback และฟังก์ชันเรียกกลับ วิธีนี้ช่วยให้คุณเขียนแอปพลิเคชันแบบสมบูรณ์ที่แสดงข้อมูล Blogger โดยไม่ต้องเขียนโค้ดฝั่งเซิร์ฟเวอร์ได้

ตัวอย่างต่อไปนี้ดึงโพสต์จากบล็อก code.blogger.com (หลังจากแทนที่ YOUR-API-KEY ด้วยคีย์ API ของคุณ)

<html>
  <head>
    <title>Blogger JSON 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/v2/blogs/3213900/posts/8398240586497962757?callback=handleResponse&key=YOUR-API-KEY"></script>
  </body>
</html>

รูปแบบข้อมูล

JSON

JSON (JavaScript Object Notation) เป็นรูปแบบข้อมูลทั่วไปที่ไม่อิงตามภาษา ซึ่งให้การนำเสนอข้อความแบบง่ายของโครงสร้างข้อมูลที่กำหนดเอง สำหรับข้อมูลเพิ่มเติม โปรดดู json.org