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

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

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 อย่าง curl หรือ wget มีประโยชน์ ดูข้อมูลเพิ่มเติมได้ในหน้าคู่มือของยูทิลิตีเหล่านั้น

ดูข้อมูลอ้างอิงเกี่ยวกับ Blogger Data API ได้ที่คู่มือข้อมูลอ้างอิงเกี่ยวกับโปรโตคอล

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

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

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

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

คุณเข้าถึงทั้งฟีดสาธารณะและฟีดส่วนตัวได้โดยใช้ Blogger Data API ฟีดสาธารณะไม่จําเป็นต้องตรวจสอบสิทธิ์ แต่จะเป็นฟีดแบบอ่านอย่างเดียว หากต้องการแก้ไขบล็อก ลูกค้าจะต้องตรวจสอบสิทธิ์ก่อนขอฟีดส่วนตัว โดยสามารถตรวจสอบสิทธิ์ได้โดยใช้แนวทางใดแนวทางหนึ่งต่อไปนี้ การตรวจสอบสิทธิ์พร็อกซี 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พารามิเตอร์การค้นหาของ URL AuthSubRequest ระบบ AuthSub จะเพิ่มโทเค็นการตรวจสอบสิทธิ์ต่อท้าย URL นั้น เป็นค่าของพารามิเตอร์การค้นหา token เช่น

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

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

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 พารามิเตอร์เหล่านี้ได้แก่

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

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

หากคําขอตรวจสอบสิทธิ์ไม่สําเร็จ เซิร์ฟเวอร์จะแสดงรหัสสถานะ HTTP403 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 มีฟีดที่แสดงรายการบล็อกของผู้ใช้รายหนึ่งๆ ซึ่งฟีดดังกล่าวเรียกว่า "ฟีดเมตา"

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

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

หมายเหตุ: คุณสามารถใช้ 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 ของโพสต์ของบล็อกดังนี้ ก่อนอื่น ให้วางองค์ประกอบ <entry> ของ Atom ในเนื้อหาของคำขอ 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 จะแสดงรหัสสถานะ HTTP200 OK และฟีดที่มีบล็อกโพสต์ที่สร้างในช่วงวันที่ที่คุณระบุ

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

Blogger Data API รองรับพารามิเตอร์การค้นหาต่อไปนี้

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

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

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

เคล็ดลับการแก้ปัญหา: ไฟร์วอลล์บางตัวบล็อกข้อความ HTTPPUT วิธีแก้ปัญหานี้คือให้ใส่ส่วนหัว 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 ช่วยให้สร้าง เรียกข้อมูล และลบความคิดเห็นได้ ระบบไม่รองรับการอัปเดตความคิดเห็น (และไม่พร้อมใช้งานในอินเทอร์เฟซเว็บ)

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

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

  <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 ไฟล์การส่งออกนี้มีโพสต์และความคิดเห็นทั้งหมดของบล็อกหนึ่งๆ รูปแบบของไฟล์ส่งออกคือรูปแบบ 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 ในไฟล์การส่งออกได้ที่คู่มืออ้างอิงโปรโตคอล

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