สําคัญ: หน้าเว็บนี้เป็นเวอร์ชันเก่า สําหรับเวอร์ชันล่าสุด ให้ใช้ลิงก์ในแถบนําทางด้านซ้าย
API ข้อมูลของ Blogger จะช่วยให้แอปพลิเคชันไคลเอ็นต์สามารถดูและอัปเดตเนื้อหาของ 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
มีประโยชน์สําหรับข้อมูลเพิ่มเติม โปรดดูหน้าคู่มือสําหรับยูทิลิตีเหล่านั้น
สําหรับข้อมูลอ้างอิงของ Data API ใน Blogger โปรดดูที่คู่มืออ้างอิงของโปรโตคอล
เริ่มต้นใช้งาน
การสร้างบัญชี Blogger
คุณอาจต้องลงชื่อสมัครใช้บัญชี Blogger เพื่อวัตถุประสงค์ในการทดสอบ Blogger ใช้บัญชี Google ดังนั้นหากคุณมี บัญชี Google อยู่แล้ว คุณก็พร้อมใช้งานได้ทันที
การตรวจสอบสิทธิ์กับบริการ Blogger
คุณสามารถเข้าถึงได้ทั้งฟีดสาธารณะและฟีดส่วนตัวโดยใช้ Blogger Data API ฟีดสาธารณะไม่จําเป็นต้องมีการตรวจสอบสิทธิ์ แต่เป็นแบบอ่านอย่างเดียว หากต้องการแก้ไขบล็อก ลูกค้าจะต้องตรวจสอบสิทธิ์ก่อนที่จะขอฟีดส่วนตัว โดยจะตรวจสอบสิทธิ์ได้โดยใช้วิธีใดวิธีหนึ่งจาก 2 วิธีนี้ ได้แก่ การตรวจสอบสิทธิ์พร็อกซี AuthSub หรือการตรวจสอบสิทธิ์ชื่อผู้ใช้/รหัสผ่าน ClientLogin
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ด้วย Google Data API โดยทั่วไปได้ในเอกสารประกอบของการตรวจสอบสิทธิ์
ตัวอย่างส่วนใหญ่ในส่วนถัดไปของเอกสารนี้ถือว่าคุณได้จัดเตรียมการตรวจสอบสิทธิ์ที่เหมาะสม
การตรวจสอบสิทธิ์พร็อกซี AuthSub
เว็บแอปพลิเคชันที่ใช้การตรวจสอบสิทธิ์พร็อกซี AuthSub ต้องมีการตรวจสอบสิทธิ์ผู้ใช้กับบัญชี Google ผู้ให้บริการเว็บไซต์และโค้ดของไคลเอ็นต์จะไม่มีสิทธิ์เข้าถึงชื่อผู้ใช้และรหัสผ่านสําหรับผู้ใช้ 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
ด้วยโทเค็นแบบใช้ครั้งเดียวในส่วนหัวการให้สิทธิ์ดังนี้
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 หากไคลเอ็นต์เป็นไคลเอ็นต์เดี่ยว
"Installed" ไคลเอ็นต์ (เช่น แอปพลิเคชันเดสก์ท็อป) หากต้องการขอโทเค็นการตรวจสอบสิทธิ์โดยใช้กลไก ClientLogin ให้ส่งคําขอ POST
ไปยัง URL ต่อไปนี้
https://www.google.com/accounts/ClientLogin
ส่วนเนื้อหาของ POST
ควรมีชุดพารามิเตอร์การค้นหาที่ดูเหมือนพารามิเตอร์ที่ส่งผ่านโดยแบบฟอร์ม HTML โดยใช้ประเภทเนื้อหา application/x-www-form-urlencoded
พารามิเตอร์เหล่านี้
มีดังนี้
- อีเมล
- อีเมลของผู้ใช้
- รหัสผ่าน
- รหัสผ่านของผู้ใช้
- บริการ
- ชื่อบริการของ Blogger คือ
blogger
(สําหรับชื่อบริการอื่นๆ ให้ดูรายชื่อบริการ) - ประเภทบัญชี
- ควรตั้งค่านี้เป็น
GOOGLE
เสมอเมื่อใช้ Blogger API การไม่ตั้งค่าพารามิเตอร์นี้จะป้องกันไม่ให้ผู้ใช้ที่มีบัญชี G Suite เข้าถึง - source
- ระบุแอปพลิเคชันไคลเอ็นต์ของคุณ ควรอยู่ในรูปแบบ companyName-applicationName-versionID ตัวอย่างใช้ชื่อ
exampleCo-exampleApp-1
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ได้จากเอกสารการตรวจสอบสิทธิ์สําหรับแอปพลิเคชันที่ติดตั้ง
หากคําขอการตรวจสอบสิทธิ์ล้มเหลว เซิร์ฟเวอร์จะส่งคืนรหัสสถานะ HTTP 403 Forbidden
หากเชื่อมต่อสําเร็จ เซิร์ฟเวอร์จะแสดงรหัสสถานะ HTTP 200 OK
พร้อมตัวเลขและตัวอักษรผสมกันยาว 3 ตัวในส่วนคําตอบ ได้แก่ SID, LSID และ Auth ค่าการตรวจสอบสิทธิ์คือโทเค็นการให้สิทธิ์ที่คุณจะส่งถึง Blogger พร้อมคําขอที่ตามมาแต่ละรายการ ดังนั้นให้เก็บสําเนาของค่าดังกล่าว คุณไม่จําเป็นต้องสนใจค่า SID และ LSID ได้
เนื่องจากคําขอทั้งหมดที่ส่งไปยังฟีดส่วนตัวต้องมีการตรวจสอบสิทธิ์ คุณจึงต้องตั้งค่าส่วนหัวการให้สิทธิ์ในการโต้ตอบกับบล็อกเกอร์หลังจากนั้นทั้งหมด โดยใช้รูปแบบต่อไปนี้
Authorization: GoogleLogin auth=yourAuthToken
โดยที่ yourAuthToken
เป็นสตริงการตรวจสอบสิทธิ์ที่แสดงโดยคําขอ ClientLogin
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ ClientLogin รวมถึงตัวอย่างคําขอและการตอบกลับได้จากเอกสารประกอบการตรวจสอบสิทธิ์สําหรับแอปพลิเคชันที่ติดตั้งไว้
หมายเหตุ: ใช้โทเค็นเดียวกันสําหรับคําขอทั้งหมดในเซสชันที่ระบุ และอย่าสร้างโทเค็นใหม่สําหรับคําขอ Blogger แต่ละรายการ
หมายเหตุ: ตามที่อธิบายไว้ในเอกสารประกอบของ ClientLogin คําขอการตรวจสอบสิทธิ์อาจล้มเหลวและส่งคําขอ CAPTCHA หากต้องการให้ Google ออกและจัดการปัญหา CAPTCHA ให้ส่งผู้ใช้ไปที่
https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger
(แทนที่จะส่ง URL การจัดการ CAPTCHA ที่ระบุในเอกสารประกอบ ClientLogin)
กําลังเรียกดูรายการบล็อก
API ข้อมูลของ Blogger มีฟีดที่แสดงรายการบล็อกของผู้ใช้บางราย ฟีดนั้นเรียกว่า "metafeed."
ส่ง HTTP GET
ไปยัง URL ต่อไปนี้เพื่อรับรายการบล็อก
http://www.blogger.com/feeds/userID/blogs
หมายเหตุ: คุณยังแทนที่ default
สําหรับรหัสผู้ใช้ได้ ซึ่งจะบอกให้ Blogger แสดงรายชื่อบล็อกสําหรับผู้ใช้ซึ่งมีข้อมูลเข้าสู่ระบบประกอบคําขอ
รายการใน Metafeed อาจมีลักษณะเช่นนี้
<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
การสร้างโพสต์
API ข้อมูลของ Blogger ช่วยให้คุณสามารถสร้างและเผยแพร่รายการบล็อกใหม่ เช่นเดียวกับการสร้างฉบับร่างของรายการ
การเผยแพร่บล็อกโพสต์
หลังจากตรวจสอบสิทธิ์แล้ว คุณจะเผยแพร่รายการบล็อกใหม่ได้
ขั้นแรก สร้างการนําเสนอ 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 ได้โดยไม่ต้องตรวจสอบสิทธิ์ ดังนั้น คุณจึงไม่ต้องตั้งค่าพารามิเตอร์การให้สิทธิ์เมื่อเรียกข้อมูลบล็อกโพสต์จากบล็อกสาธารณะ
กําลังเรียกบล็อกโพสต์ทั้งหมด
หากต้องการเรียกข้อมูลโพสต์ของผู้ใช้ ให้ส่งคําขอ GET
ของ HTTP ไปยัง 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'><p>I met Mr. Bingley's friend Mr. Darcy this evening. I found him quite disagreeable.</p></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>
การดึงข้อมูลโพสต์โดยใช้พารามิเตอร์การค้นหา
API ข้อมูลของ Blogger ช่วยให้คุณขอชุดรายการที่ตรงกับเกณฑ์ที่ระบุได้ เช่น การขอบล็อกโพสต์ที่เผยแพร่หรืออัปเดตในช่วงวันที่หนึ่งๆ
เช่น หากต้องการส่งคําค้นหาตามช่วงวันที่ ให้เพิ่มพารามิเตอร์ 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
ด้วย
Blogger Data API รองรับพารามิเตอร์การค้นหาต่อไปนี้
- alt
- ประเภทฟีดที่จะแสดงผล เช่น
atom
(ค่าเริ่มต้น) หรือrss
- /category
- ระบุหมวดหมู่ (หรือที่เรียกว่าป้ายกํากับ) เพื่อกรองผลลัพธ์ของฟีด เช่น
http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie
จะแสดงรายการป้ายกํากับทั้งFritz
และLaurie
- ผลลัพธ์สูงสุด
- จํานวนสูงสุดของผลลัพธ์ที่จะแสดง
- Orderby
- ลําดับในการคืนสินค้า เช่น
lastmodified
(ค่าเริ่มต้น),starttime
หรือupdated
- เผยแพร่ต่ําสุด, เผยแพร่สูงสุด
- ขอบเขตวันที่เผยแพร่รายการที่ป้อน
- ดัชนีเริ่มต้น
- ดัชนี 1 จากผลลัพธ์แรกที่จะดึงมา (สําหรับการแบ่งหน้า)
- อัปเดต-นาที, อัปเดต-สูงสุด
- ขอบเขตการอัปเดตวันที่ป้อนเข้า ระบบจะไม่สนใจพารามิเตอร์การค้นหาเหล่านี้ เว้นแต่จะกําหนดพารามิเตอร์
orderby
เป็นupdated
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์การค้นหาได้ที่คู่มืออ้างอิง API ข้อมูลของ Blogger และคู่มืออ้างอิงสําหรับ 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'><p>I met Mr. Bingley's friend Mr. Darcy this evening. I found him quite disagreeable.</p></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 ช่วยให้สร้าง ดึงข้อมูล และลบความคิดเห็นได้ ไม่สนับสนุนการอัปเดตความคิดเห็น (หรือไม่พร้อมใช้งานในอินเทอร์เฟซเว็บ)
การสร้างความคิดเห็น
หากต้องการโพสต์ความคิดเห็น ให้สร้างเอลิเมนต์ 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>
หากต้องการเผยแพร่ความคิดเห็นนี้ ให้วางองค์ประกอบ Atom <entry>
ไว้ในเนื้อหาของคําขอ 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 #39;
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 แบบเดียวกับที่อธิบายไว้ในส่วนในการเรียกดูโพสต์และความคิดเห็น ไฟล์ส่งออกนี้จะรวมเนื้อหาของฟีดโพสต์และเนื้อหาของฟีดความคิดเห็นไว้รวมกันใน 1 เอกสาร
หากต้องการส่งออกหรือนําเข้าข้อมูลบล็อกโดยใช้รูปแบบการส่งออก ให้ไปที่หน้าการตั้งค่าของบล็อก หากต้องการเรียกไฟล์ส่งออกสําหรับบล็อกโดยใช้ 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 ข้างต้นไม่รองรับพารามิเตอร์การค้นหา คําขอทั้งสองต้องมีข้อมูลการตรวจสอบสิทธิ์ด้วย และมีเพียงผู้ดูแลระบบบล็อกเท่านั้นที่จะนําเข้า/ส่งออกบล็อกโดยใช้ URL ของฟีดเหล่านี้ได้
หมายเหตุ: หากสร้างไฟล์การส่งออกของ Blogger ของคุณเอง จะมีข้อจํากัดเดียวสําหรับการจัดลําดับรายการโพสต์และความคิดเห็น ไฟล์ส่งออกของ Blogger จะแสดงข้อความทั้งหมดก่อน ตามด้วยความคิดเห็นทั้งหมด คุณสามารถแทรกรายการโพสต์และความคิดเห็นเองได้ ตราบใดที่รายการความคิดเห็นอยู่หลังโพสต์ของความคิดเห็นนั้น
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Blogger ใช้รูปแบบ Atom ในไฟล์ส่งออกได้ที่คู่มืออ้างอิง Protocol