คู่มือสำหรับนักพัฒนาซอฟต์แวร์: โปรโตคอล

สำคัญ: หน้านี้เป็นเวอร์ชันเก่า สำหรับเวอร์ชันล่าสุด ให้ใช้ลิงก์ในแถบนำทางด้านซ้าย

Blogger Data API ช่วยให้แอปพลิเคชันไคลเอ็นต์สามารถดูและอัปเดตเนื้อหา Blogger ในรูปแบบของฟีด Google Data API

แอปพลิเคชันไคลเอ็นต์ของคุณสามารถใช้ Blogger Data API เพื่อสร้างบล็อกโพสต์ใหม่ แก้ไขหรือลบบล็อกโพสต์ที่มีอยู่ และค้นหาบล็อกโพสต์ที่ตรงกับเกณฑ์หนึ่งๆ

นอกเหนือจากการให้ข้อมูลพื้นฐานเกี่ยวกับความสามารถของ Blogger Data API แล้ว เอกสารนี้ยังแสดงตัวอย่างการโต้ตอบกับ Data API ขั้นพื้นฐานโดยใช้ XML และ HTTP อีกด้วย หลังจากอ่านเอกสารนี้แล้ว คุณควรดูข้อมูลเพิ่มเติมเกี่ยวกับการโต้ตอบกับ API โดยใช้ไลบรารีของไคลเอ็นต์โดยอ่านส่วนเฉพาะภาษาโปรแกรมในคู่มือสำหรับนักพัฒนาซอฟต์แวร์นี้

เนื้อหา

ผู้ชม

เอกสารนี้มีไว้สำหรับโปรแกรมเมอร์ที่ต้องการเขียนแอปพลิเคชันไคลเอ็นต์ที่สามารถโต้ตอบกับ Blogger โดยใช้ XML และ HTTP

เอกสารนี้ถือว่าคุณเข้าใจแนวคิดทั่วไปเบื้องหลังโปรโตคอล Google Data API

หากคุณใช้ระบบ UNIX และต้องการลองใช้ตัวอย่างในเอกสารนี้โดยไม่ต้องเขียนโค้ดใดๆ คุณอาจพบว่ายูทิลิตีบรรทัดคำสั่ง UNIX หรือ wget มีประโยชน์ ดูรายละเอียดเพิ่มเติมได้ที่หน้าคู่มือสำหรับยูทิลิตีเหล่านั้นcurl

โปรดดูข้อมูลอ้างอิงของ Blogger Data API ที่คู่มืออ้างอิงโปรโตคอล

เริ่มต้นใช้งาน

การสร้างบัญชี Blogger

คุณอาจต้องการลงชื่อสมัครใช้บัญชี Blogger เพื่อการทดสอบ Blogger ใช้บัญชี Google ดังนั้นหากคุณมีบัญชี Google อยู่แล้ว คุณก็ใช้งานได้เลย

การตรวจสอบสิทธิ์กับบริการ Blogger

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ด้วย Google Data API โดยทั่วไปได้ในเอกสารประกอบการตรวจสอบสิทธิ์

ตัวอย่างส่วนใหญ่ในส่วนต่อๆ ไปของเอกสารนี้จะถือว่าคุณจัดเตรียมการตรวจสอบสิทธิ์ที่เหมาะสมแล้ว

การตรวจสอบสิทธิ์พร็อกซี AuthSub

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

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

พารามิเตอร์การค้นหาต่อไปนี้จะรวมอยู่ใน URL AuthSubRequest:

ถัดไป
URL ของหน้าเว็บที่ Google ควรเปลี่ยนเส้นทางผู้ใช้ไปหลังการตรวจสอบสิทธิ์
ขอบเขต
ระบุว่าแอปพลิเคชันกำลังขอโทเค็นเพื่อเข้าถึงฟีด Blogger สตริงขอบเขตที่จะใช้คือ http://www.blogger.com/feeds/ (แน่นอนว่ามีการเข้ารหัส URL)
รักษาความปลอดภัย
ระบุว่าไคลเอ็นต์กำลังขอโทเค็นที่ปลอดภัยหรือไม่
เซสชัน
ระบุว่าโทเค็นที่ส่งคืนสามารถแลกเปลี่ยนเป็นโทเค็นแบบใช้งานหลายครั้ง (เซสชัน) ได้หรือไม่

URL AuthSubRequest อาจมีลักษณะดังนี้

https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.blogger.com%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2Fwelcome.html

ผู้ใช้จะไปตามลิงก์ไปยังเว็บไซต์ของ Google และตรวจสอบสิทธิ์บัญชี Google

หลังจากที่ผู้ใช้ตรวจสอบสิทธิ์แล้ว ระบบ AuthSub จะเปลี่ยนเส้นทางผู้ใช้ไปยัง URL ที่คุณระบุในพารามิเตอร์การค้นหา next ของ AuthSubRequest URL ระบบ AuthSub จะเพิ่มโทเค็นการตรวจสอบสิทธิ์ต่อท้าย URL นั้นเป็นค่าของพารามิเตอร์การค้นหา token เช่น

http://www.example.com/welcome.html?token=yourAuthToken

ค่าโทเค็นนี้แสดงโทเค็น AuthSub แบบใช้ครั้งเดียว ในตัวอย่างนี้ เนื่องจากมีการระบุ session=1 แล้ว โทเค็นนี้จึงแลกเปลี่ยนเป็นโทเค็นเซสชัน AuthSub ได้โดยเรียกใช้บริการ AuthSubSessionToken ด้วยโทเค็นแบบใช้ครั้งเดียวในส่วนหัวการให้สิทธิ์ ดังนี้

GET /accounts/AuthSubSessionToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourAuthToken"
User-Agent: Java/1.5.0_06
Host: www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

การตอบกลับของบริการ AuthSubSessionToken ประกอบด้วยส่วนหัว Token ที่มีโทเค็นเซสชันและส่วนหัว Expiration ที่ระบุระยะเวลาที่โทเค็นจะยังคงใช้งานได้

จากนั้นแอปพลิเคชันจะใช้ค่าโทเค็นเซสชันในส่วนหัวของ Authorization ของการโต้ตอบกับ Blogger ในครั้งต่อๆ ไปได้

ต่อไปนี้เป็นตัวอย่างของคำขอ HTTP ที่มีโทเค็นที่ไม่ปลอดภัยที่คุณอาจส่งไปยัง Blogger

GET /feeds/blogID/blogs/posts/defaults HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourSessionToken"
User-Agent: Java/1.5.0_06
Host: www.blogger.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

การตรวจสอบสิทธิ์ชื่อผู้ใช้/รหัสผ่าน ClientLogin

ใช้การตรวจสอบสิทธิ์ ClientLogin หากไคลเอ็นต์เป็นไคลเอ็นต์ที่ "ติดตั้ง" สำหรับผู้ใช้รายเดียวแบบสแตนด์อโลน (เช่น แอปพลิเคชันบนเดสก์ท็อป) หากต้องการขอโทเค็นการตรวจสอบสิทธิ์โดยใช้กลไก ClientLogin ให้ส่งคำขอ POST ไปยัง URL ต่อไปนี้

https://www.google.com/accounts/ClientLogin

ส่วนเนื้อหา POST ควรมีชุดพารามิเตอร์การค้นหาที่ดูเหมือนพารามิเตอร์ที่ส่งมาโดยแบบฟอร์ม HTML โดยใช้ประเภทเนื้อหา application/x-www-form-urlencoded พารามิเตอร์เหล่านี้ ได้แก่

อีเมล
อีเมลของผู้ใช้
รหัสผ่าน
รหัสผ่านของผู้ใช้
บริการ
ชื่อบริการ Blogger คือ blogger (สำหรับชื่อบริการอื่น โปรดดูรายการชื่อบริการ)
accountType
ควรตั้งค่านี้เป็น GOOGLE เสมอเมื่อใช้ Blogger API หากไม่ตั้งค่าพารามิเตอร์นี้ ผู้ใช้ที่มีบัญชี G Suite จะเข้าถึงไม่ได้
source
ระบุแอปพลิเคชันไคลเอ็นต์ ควรอยู่ในรูปแบบ companyName-applicationName-versionID โดยตัวอย่างใช้ชื่อ exampleCo-exampleApp-1

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

หากคำขอการตรวจสอบสิทธิ์ล้มเหลว เซิร์ฟเวอร์จะแสดงรหัสสถานะ HTTP 403 Forbidden

หากสำเร็จ เซิร์ฟเวอร์จะแสดงรหัสสถานะ HTTP 200 OK พร้อมรหัสตัวอักษรและตัวเลขยาว 3 รหัสในส่วนเนื้อหาของการตอบสนอง ได้แก่ SID, LSID และ Auth ค่า Auth คือโทเค็นการให้สิทธิ์ที่คุณจะส่งให้กับ Blogger พร้อมกับคำขอที่ตามมาแต่ละรายการ ดังนั้นโปรดเก็บสำเนาของค่าดังกล่าวเอาไว้ โดยไม่สนใจค่า SID และ LSID

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

Authorization: GoogleLogin auth=yourAuthToken

โดยที่ yourAuthToken คือสตริงการตรวจสอบสิทธิ์ที่ส่งกลับโดยคำขอ ClientLogin

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ ClientLogin รวมถึงตัวอย่างคำขอและการตอบกลับ โปรดดูเอกสารประกอบการตรวจสอบสิทธิ์สำหรับแอปพลิเคชันที่ติดตั้ง

หมายเหตุ: ใช้โทเค็นเดียวกันสำหรับคำขอทั้งหมดในเซสชันหนึ่งๆ อย่ารับโทเค็นใหม่สำหรับคำขอแต่ละรายการจาก Blogger

หมายเหตุ: ดังที่อธิบายไว้ในเอกสาร ClientLogin คำขอการตรวจสอบสิทธิ์อาจล้มเหลวและต้องขอคำท้า CAPTCHA หากต้องการให้ Google ออกและจัดการคำถาม CAPTCHA ให้ส่งผู้ใช้ไปที่ https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger (แทนที่จะเป็น URL การจัดการ CAPTCHA ที่ให้ไว้ในเอกสาร ClientLogin)

เรียกดูรายการบล็อก

Blogger Data API มีฟีดที่แสดงรายการบล็อกสำหรับผู้ใช้ โดยฟีดนั้นเรียกว่า "metafeed"

ส่ง HTTP GET ไปยัง URL ต่อไปนี้เพื่อเรียกข้อมูลรายการบล็อก

http://www.blogger.com/feeds/userID/blogs

หมายเหตุ: คุณยังใช้ User-ID แทน default ได้ด้วย ซึ่งจะบอกให้ Blogger แสดงผลรายการบล็อกของผู้ใช้ซึ่งมีข้อมูลเข้าสู่ระบบมาพร้อมกับคำขอ

รายการในฟีดเมตาอาจมีหน้าตาดังนี้

<entry>
  <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
  <published>2006-08-02T18:44:43.089-07:00</published>
  <updated>2006-11-08T18:10:23.020-08:00</updated>
  <title type='text'>Lizzy's Diary</title>
  <summary type='html'>Being the journal of Elizabeth Bennet</summary>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/'>
  </link>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <link rel='http://schemas.google.com/g/2005#post'
    type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/userID/blogs/blogID'>
  </link>
  <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/userID/blogs/blogID'>
  </link>
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
</entry>

ดูข้อมูลเกี่ยวกับความหมายของแต่ละองค์ประกอบได้ที่เอกสารการอ้างอิงโปรโตคอล Google Data API หรือข้อกำหนดของ Atom 1.0

หากคำขอล้มเหลวด้วยเหตุผลบางประการ Blogger อาจแสดงรหัสสถานะอื่น โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานะ HTTP ในเอกสารข้อมูลอ้างอิงโปรโตคอลของ Google Data API

การสร้างโพสต์

Blogger Data API ช่วยให้คุณสามารถสร้างและเผยแพร่รายการบล็อกใหม่ รวมถึงสร้างแบบร่างของรายการ

การเผยแพร่บล็อกโพสต์

หลังจากตรวจสอบสิทธิ์แล้ว คุณจะเผยแพร่รายการใหม่ในบล็อกได้

ขั้นแรก ให้สร้างการนำเสนอ XML ของโพสต์เพื่อเผยแพร่ XML นี้ต้องอยู่ในรูปแบบองค์ประกอบ Atom <entry> ซึ่งอาจมีลักษณะดังนี้

<entry xmlns='http://www.w3.org/2005/Atom'>
  <title type='text'>Marriage!</title>
  <content type='xhtml'>
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p>Mr. Darcy has <em>proposed marriage</em> to me!</p>
      <p>He is the last man on earth I would ever desire to marry.</p>
      <p>Whatever shall I do?</p>
    </div>
  </content>
  <category scheme="http://www.blogger.com/atom/ns#" term="marriage" />
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
</entry>

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

หากต้องการเผยแพร่รายการนี้ ให้ส่งไปยัง URL ของโพสต์ของบล็อกดังนี้ ก่อนอื่น ให้วางองค์ประกอบ Atom <entry> ในเนื้อหาของคำขอ POST ใหม่ โดยใช้ประเภทเนื้อหา application/atom+xml จากนั้นค้นหา URL ของโพสต์ของบล็อกในฟีดเมตาด้วยการค้นหาองค์ประกอบ <link> ที่แอตทริบิวต์ rel ลงท้ายด้วย #post ระบบระบุ URL ของบล็อกโพสต์เป็นแอตทริบิวต์ href ขององค์ประกอบนี้ ซึ่งจะอยู่ในรูปแบบต่อไปนี้

http://www.blogger.com/feeds/blogID/posts/default

หมายเหตุ: URL นี้เหมือนกับ URL ในแท็ก <link rel="service.post"> ที่ปรากฏในส่วน <head> ของบล็อกเวอร์ชันที่มนุษย์อ่านได้

Blogger จะสร้างบล็อกโพสต์โดยใช้รายการที่คุณส่ง จากนั้นจะแสดงรหัสสถานะ HTTP 201 CREATED พร้อมด้วยสำเนาของโพสต์ใหม่ในรูปแบบขององค์ประกอบ <entry> รายการที่แสดงนั้นเป็นรายการเดียวกับที่คุณส่ง แต่ก็มีองค์ประกอบต่างๆ ที่ Blogger เพิ่มไว้ เช่น องค์ประกอบ <id>

หากคำขอล้มเหลวด้วยเหตุผลบางประการ Blogger อาจแสดงรหัสสถานะอื่น ดูข้อมูลเกี่ยวกับรหัสสถานะได้ที่เอกสารอ้างอิงโปรโตคอลของ Google Data API

การสร้างบล็อกโพสต์ฉบับร่าง

โพสต์ฉบับร่างนั้นสร้างขึ้นในลักษณะเดียวกันกับโพสต์สาธารณะ แต่มีการเพิ่มเอลิเมนต์ <app:control> ลงในรายการแสดงว่าโพสต์ไม่ควร (ยัง) เผยแพร่

องค์ประกอบ <app:control> นี้ควรประกอบด้วยองค์ประกอบ <app:draft> รายการเดียวในรูปแบบย่อย

<app:control xmlns:app='http://purl.org/atom/app#'>
  <app:draft>yes</app:draft>
</app:control>

ข้อมูลที่อยู่ในองค์ประกอบ <app:draft> ต้องเป็นสตริง yes เพื่อให้ระบบรับรู้ว่าโพสต์เป็นข้อความร่าง

คุณเปลี่ยนบล็อกโพสต์ฉบับร่างที่มีอยู่เป็นโพสต์ที่เผยแพร่แล้วได้โดยการเรียกข้อมูลโพสต์ฉบับร่าง ตั้งค่าข้อมูลขององค์ประกอบ <app:draft> เป็นสตริง no จากนั้นจึงอัปเดตโพสต์ การดึงข้อมูลและอัปเดตโพสต์ จะระบุไว้ใน 2 ส่วนถัดไป

หมายเหตุ: ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรโตคอลการเผยแพร่ Atom รวมถึงเนมสเปซ <app:control> และ <app:draft> ได้ที่ RFC 5023

กำลังเรียกโพสต์

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

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

กำลังเรียกดูบล็อกโพสต์ทั้งหมด

หากต้องการเรียกโพสต์ของผู้ใช้ ให้ส่งคำขอ HTTP GET ไปยัง URL ฟีดของบล็อก จากนั้น Blogger จะแสดงฟีดที่มีรายการบล็อกที่เหมาะสม เช่น หากต้องการรับรายการบล็อกโพสต์สำหรับ liz@gmail.com ให้ส่งคำขอ HTTP ต่อไปนี้ไปยัง Blogger (โดยจะใช้ค่าที่เหมาะสมแทน blogID)

GET http://www.blogger.com/feeds/blogID/posts/default

จากนั้น Blogger จะแสดงรหัสสถานะ HTTP 200 OK และฟีด Atom 1.0 มาตรฐานที่มีบล็อกโพสต์

ต่อไปนี้เป็นตัวอย่างฟีดสำหรับบล็อกที่มีโพสต์เดียว สังเกตไหมว่าเราได้แก้ไขตัวอย่างนี้เล็กน้อยเพื่อให้มนุษย์อ่านได้ง่ายขึ้น โดยเฉพาะอย่างยิ่ง ฟีด Blogger จริงจะมีรหัสและ URL จริง

<feed xmlns='http://www.w3.org/2005/Atom'>
  <id>tag:blogger.com,1999:blog-blogID</id>
  <updated>2006-11-08T18:10:23.020-08:00</updated>
  <title type='text'>Lizzy's Diary</title>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/index.html'>
  </link>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
  <generator version='7.00' uri='http://www2.blogger.com'>Blogger</generator>
  <entry>
    <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
    <published>2006-11-08T18:10:00.000-08:00</published>
    <updated>2006-11-08T18:10:14.954-08:00</updated>
    <title type='text'>Quite disagreeable</title>
    <content type='html'>&lt;p&gt;I met Mr. Bingley's friend Mr. Darcy
      this evening. I found him quite disagreeable.&lt;/p&gt;</content>
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2006/11/quite-disagreeable.html'>
    </link>
    <link rel='self' type='application/atom+xml'
      href='http://blogName.blogspot.com/feeds/posts/default/postID'>
    </link>
    <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID'>
    </link>
    <author>
      <name>Elizabeth Bennet</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/profileID</uri>
    </author>
  </entry>
</feed>

การดึงข้อมูลโพสต์โดยใช้พารามิเตอร์การค้นหา

Blogger Data API ช่วยให้คุณขอชุดรายการที่ตรงกับเกณฑ์ที่ระบุ เช่น ขอบล็อกโพสต์ที่เผยแพร่หรืออัปเดตในช่วงวันที่ที่ระบุ

ตัวอย่างเช่น หากต้องการส่งการค้นหาช่วงวันที่ ให้เพิ่มพารามิเตอร์ published-min และ published-max ลงใน URL ของคําขอ ในการรับรายการทั้งหมดในบล็อกที่สร้างขึ้นระหว่างวันที่ 16 มีนาคม 2008 ถึง 24 มีนาคม 2008 ให้ส่งคำขอ HTTP ไปยัง URL ฟีดของบล็อกดังนี้

GET http://www.blogger.com/feeds/blogID/posts/default?published-min=2008-03-16T00:00:00&published-max=2008-03-24T23:59:59

เมื่อคุณส่งคำขอ GET นั้น Blogger จะแสดงรหัสสถานะ HTTP 200 OK และฟีดที่มีบล็อกโพสต์ซึ่งสร้างขึ้นในช่วงวันที่ที่คุณระบุ

นอกจากนี้ ระบบอาจใช้พารามิเตอร์ updated-min และ updated-max เพื่ออัปเดตรายการบล็อกทั้งหมดภายในช่วงที่กำหนด อย่างไรก็ตาม โปรดทราบว่าระบบจะไม่สนใจพารามิเตอร์เหล่านี้ เว้นแต่จะตั้งค่าพารามิเตอร์ orderby เป็น updated ด้วย

API ข้อมูลของ Blogger สนับสนุนพารามิเตอร์การค้นหาต่อไปนี้

alt
ประเภทของฟีดที่จะแสดงผล เช่น atom (ค่าเริ่มต้น) หรือ rss
/category
ระบุหมวดหมู่ (หรือที่เรียกว่าป้ายกำกับ) เพื่อกรองผลลัพธ์ของฟีด ตัวอย่างเช่น http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie จะแสดงรายการที่มีทั้งป้ายกำกับ Fritz และ Laurie
max-results
จำนวนรายการสูงสุดที่จะแสดง
คำสั่งซื้อ
ลำดับในการแสดงรายการ เช่น lastmodified (ค่าเริ่มต้น), starttime หรือ updated
ขั้นต่ำที่เผยแพร่, สูงสุดที่เผยแพร่
ขอบเขตวันที่ที่เผยแพร่รายการ
start-index
ดัชนีแบบ 1 ของผลลัพธ์แรกที่จะดึงข้อมูล (สำหรับการแบ่งหน้า)
ค่าขั้นต่ำที่อัปเดต, ค่าสูงสุดที่อัปเดต
ขอบเขตของวันที่อัปเดตรายการ ระบบจะไม่สนใจพารามิเตอร์การค้นหาเหล่านี้ เว้นแต่จะตั้งค่าพารามิเตอร์ orderby เป็น updated

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์การค้นหาได้ในคู่มืออ้างอิง Blogger Data API และคู่มืออ้างอิงสำหรับ Google Data API

กำลังอัปเดตโพสต์

หากต้องการอัปเดตบล็อกโพสต์ที่มีอยู่ ก่อนอื่นคุณต้องเรียกข้อมูลรายการที่จะอัปเดต จากนั้นแก้ไข จากนั้นส่งคำขอ PUT พร้อมด้วยรายการที่อัปเดตในเนื้อหาข้อความไปยัง URL แก้ไขของโพสต์ ตรวจสอบว่าค่า <id> ในรายการที่คุณ PUT ตรงกับ <id> ของรายการที่มีอยู่ทุกประการ

URL สำหรับแก้ไขจะไฮไลต์ในรายการต่อไปนี้

<entry>
  <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
  <published>2006-11-08T18:10:00.000-08:00</published>
  <updated>2006-11-08T18:10:14.954-08:00</updated>
  <title type='text'>Quite disagreeable</title>
  <content type='html'>&lt;p&gt;I met Mr. Bingley's friend Mr. Darcy
    this evening. I found him quite disagreeable.&lt;/p&gt;</content>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/2006/11/quite-disagreeable.html'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default/postID'>
  </link>
  <link rel='edit' type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default/postID'>
  </link>
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Bingley" />
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
</entry>

ข้อมูลสำคัญ: เพื่อให้แน่ใจว่าสามารถส่งต่อรายการได้ โปรดตรวจสอบว่าเมื่อคุณPUTรายการที่อัปเดต คุณจะเก็บ XML ทั้งหมดที่ปรากฏเมื่อเรียกข้อมูลรายการจาก Blogger ไว้ มิเช่นนั้น เมื่อเรานำสิ่งใหม่ๆ ไปใช้และรวมองค์ประกอบ <new-awesome-feature> ไว้ในฟีด ลูกค้าจะไม่คืนสินค้าและผู้ใช้จะพลาดองค์ประกอบเหล่านั้น ไลบรารีของไคลเอ็นต์ Google Data API ทั้งหมดจัดการกับเรื่องนี้ได้อย่างถูกต้อง ดังนั้นหากคุณใช้ไลบรารีใดไลบรารีหนึ่ง คุณก็พร้อมใช้งาน

หมายเหตุ: ขณะนี้ระบบยังไม่รองรับการแก้ไขข้อมูลผู้เขียนที่เชื่อมโยงกับโพสต์

เคล็ดลับการแก้ปัญหา: ไฟร์วอลล์บางตัวบล็อกข้อความ HTTP PUT หากต้องการแก้ปัญหานี้ ให้ใส่ส่วนหัว X-HTTP-Method-Override: PUT ในคำขอ POST โปรดดูรายละเอียดที่เอกสารข้อมูลเบื้องต้นเกี่ยวกับโปรโตคอลของ Google Data API

กำลังลบโพสต์

หากต้องการลบโพสต์ ให้ส่งคำขอ DELETE ไปยัง URL การแก้ไขของโพสต์ ซึ่งเป็น URL เดียวกันกับที่ใช้อัปเดตโพสต์

เคล็ดลับการแก้ปัญหา: ไฟร์วอลล์บางตัวบล็อกข้อความ HTTP DELETE คุณอาจเพิ่มส่วนหัว X-HTTP-Method-Override: DELETE ในคำขอ POST ได้เพื่อหลีกเลี่ยงปัญหา โปรดดูรายละเอียดที่เอกสารข้อมูลเบื้องต้นเกี่ยวกับโปรโตคอลของ Google Data API

ความคิดเห็น

Blogger Data API ช่วยให้สร้าง เรียก และลบความคิดเห็นได้ ไม่รองรับการอัปเดตความคิดเห็น (และไม่พร้อมใช้งานในอินเทอร์เฟซบนเว็บ)

กำลังสร้างความคิดเห็น

หากต้องการโพสต์ความคิดเห็น ให้สร้างองค์ประกอบ <entry> ของ Atom ดังตัวอย่างต่อไปนี้

  <entry xmlns='http://www.w3.org/2005/Atom'>
    <title type="text">This is my first comment</title>
    <content type="html">This is my first comment</content>
  </entry>

หากต้องการเผยแพร่ความคิดเห็นนี้ ให้วางเอลิเมนต์ <entry> ของ Atom ในเนื้อหาของคำขอ POST ใหม่ โดยใช้ประเภทเนื้อหา application/atom+xml จากนั้นส่งคำขอ POST ไปยัง URL ของ Blogger ที่ถูกต้อง:

POST http://www.blogger.com/feeds/blogID/postID/comments/default

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

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

กำลังเรียกความคิดเห็น

คุณสามารถเรียกความคิดเห็นของโพสต์ใดโพสต์หนึ่งได้โดยส่ง GET ไปยัง URL ฟีดความคิดเห็นของโพสต์นี้:

GET http://www.blogger.com/feeds/blogID/postID/comments/default

หรือคุณสามารถรับความคิดเห็นจากโพสต์ทั้งหมดโดยใช้ URL ฟีดความคิดเห็นของบล็อก ดังนี้

GET http://www.blogger.com/feeds/blogID/comments/default

คำขอเหล่านี้จะแสดงฟีดความคิดเห็นที่มีลักษณะเช่นนี้:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"
         xmlns:thr="http://purl.org/syndication/thread/1.0">
  <id>tag:blogger.com,1999:blog-blogID.post-postID.comment-commentID</id>
  <updated>2007-04-04T21:56:29.803-07:00</updated>
  <title type="text">My Blog : Time to relax</title>
  <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html"/>
  <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default"/>
  <link rel="self" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default"/>
  <author>
    <name>Blog Author name</name>
  </author>
  <generator version="7.00" uri="http://www2.blogger.com">Blogger</generator>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <entry>
    <id>tag:blogger.com,1999:blog-blogID.post-commentID</id>
    <published>2007-04-04T21:56:00.000-07:00</published>
    <updated>2007-04-04T21:56:29.803-07:00</updated>
    <title type="text">This is my first comment</title>
    <content type="html">This is my first comment</content>
    <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html#commentID"/>
    <link rel="self" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default/commentID"/>
    <link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/blogID/postID/comments/default/commentID"/>
    <thr:in-reply-to href="http://blogName.blogspot.com/2007/04/first-post.html" 
                     ref="tag:blogger.com,1999:blog-blogID.post-postID" 
                     source="http://www.blogger.com/feeds/posts/default/blogID"
                     type="text/html"/>
    <author>
      <name>Blog Author name</name>
      <email>blog_author@gmail.com</email>
      <uri>http://www.blogger.com/profile/userID</uri>
    </author>
    <thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' 
         href='http://blogName.blogspot.com/2007/04/first-post.html' 
         ref='tag:blogger.com,1999:blog-blogID.post-postID' 
         source='http://blogName.blogspot.com/feeds/posts/default/postID'
         type='text/html' />
  </entry>
</feed>

กำลังลบความคิดเห็น

หากต้องการลบความคิดเห็น ให้ส่งคำขอ DELETE ไปยัง URL การแก้ไขของความคิดเห็น URL นี้ไฮไลต์อยู่ในฟีดความคิดเห็นด้านบน

รูปแบบการส่งออก

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

หากต้องการส่งออกหรือนำเข้าข้อมูลบล็อกโดยใช้รูปแบบการส่งออก ให้ไปที่หน้าการตั้งค่าสำหรับบล็อก หากต้องการเรียกไฟล์ส่งออกสำหรับบล็อกโดยใช้ Data API ให้ใช้ URL ต่อไปนี้

GET http://www.blogger.com/feeds/blogID/archive

หากต้องการนำเข้าไฟล์ส่งออก ให้สร้างคำขอ POST ไปยัง URL ต่อไปนี้โดยใส่เนื้อหาของไฟล์ส่งออกเป็นข้อมูลคำขอ และกำหนด application/atom+xml เป็นประเภทเนื้อหา

POST http://www.blogger.com/feeds/blogID/archive/full

URL ทั้ง 2 รายการข้างต้นไม่รองรับพารามิเตอร์การค้นหา คำขอทั้งสองต้องมีข้อมูลการตรวจสอบสิทธิ์ด้วย และผู้ดูแลระบบบล็อกเท่านั้นที่จะนำเข้า/ส่งออกบล็อกโดยใช้ URL ของฟีดเหล่านี้ได้

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Blogger ใช้รูปแบบ Atom ในไฟล์ส่งออกได้ที่คู่มืออ้างอิงโปรโตคอล

กลับไปด้านบน