Hướng dẫn dành cho nhà phát triển: Giao thức

Lưu ý quan trọng: Đây là phiên bản cũ của trang này. Để xem phiên bản mới nhất, hãy sử dụng các đường liên kết trong thanh điều hướng bên trái.

Blogger Data API cho phép các ứng dụng khách xem và cập nhật nội dung trên Blogger dưới dạng nguồn cấp dữ liệu API Dữ liệu của Google.

Ứng dụng khách của bạn có thể sử dụng Blogger Data API để tạo các bài đăng mới trên blog, chỉnh sửa hoặc xoá các bài đăng trên blog hiện có và truy vấn các bài đăng trên blog phù hợp với các tiêu chí cụ thể.

Ngoài việc cung cấp một số thông tin cơ bản về các chức năng của Blogger Data API, tài liệu này còn cung cấp ví dụ về các hoạt động tương tác cơ bản với Data API bằng cách sử dụng XML và HTTP thô. Sau khi đọc tài liệu này, bạn nên tìm hiểu thêm về cách tương tác với API thông qua thư viện ứng dụng bằng cách đọc phần dành riêng cho ngôn ngữ lập trình trong tài liệu hướng dẫn dành cho nhà phát triển này.

Nội dung

Đối tượng người xem

Tài liệu này dành cho các lập trình viên muốn viết ứng dụng khách có thể tương tác với Blogger bằng XML và HTTP.

Tài liệu này giả định rằng bạn hiểu rõ các ý tưởng chung đằng sau giao thức API Dữ liệu của Google.

Nếu đang sử dụng hệ thống UNIX và muốn thử các ví dụ trong tài liệu này mà không cần viết mã, bạn có thể thấy các tiện ích dòng lệnh UNIX curl hoặc wget hữu ích. Để biết thêm thông tin, hãy xem các trang thủ công về các tiện ích đó.

Để biết thông tin tham khảo về Blogger Data API, hãy xem phần Hướng dẫn tham khảo về giao thức.

Bắt đầu

Tạo tài khoản Blogger

Bạn nên đăng ký một tài khoản Blogger cho mục đích thử nghiệm. Blogger sử dụng Tài khoản Google, vì vậy, nếu đã có Tài khoản Google thì bạn đã hoàn tất.

Xác thực đến dịch vụ Blogger

Bạn có thể truy cập cả nguồn cấp dữ liệu công khai và riêng tư bằng API Dữ liệu của Blogger. Nguồn cấp dữ liệu công khai không yêu cầu xác thực nào nhưng sẽ ở chế độ chỉ đọc. Nếu bạn muốn sửa đổi blog, thì ứng dụng của bạn cần xác thực trước khi yêu cầu nguồn cấp dữ liệu riêng tư. Tính năng này có thể xác thực bằng một trong hai phương pháp: xác thực proxy AuthSub hoặc xác thực tên người dùng/mật khẩu ClientLogin.

Để biết thêm thông tin về cách xác thực bằng Google Data API nói chung, hãy xem tài liệu xác thực.

Hầu hết các mẫu trong các phần tiếp theo của tài liệu này đều giả định rằng bạn đang cung cấp phương thức xác thực phù hợp.

Xác thực proxy AuthSub

Phương thức xác thực proxy AuthSub được các ứng dụng web cần xác thực người dùng bằng Tài khoản Google. Toán tử trang web và mã ứng dụng không có quyền truy cập vào tên người dùng và mật khẩu của người dùng Blogger; thay vào đó, ứng dụng sẽ nhận được mã thông báo AuthSub đặc biệt cho phép ứng dụng hành động thay mặt một người dùng cụ thể. Để biết thêm thông tin chi tiết, hãy xem Tài liệu AuthSub.

Khi người dùng truy cập vào ứng dụng của bạn lần đầu tiên, họ chưa được xác thực. Trong trường hợp này, bạn cần hiển thị một số thông tin và một đường liên kết chuyển hướng người dùng đến một trang của Google để xác thực yêu cầu truy cập vào blog của họ.

Các tham số truy vấn sau đây được bao gồm trong URL AuthSubRequest:

tiếp theo
URL của trang mà Google nên chuyển hướng người dùng đến sau khi xác thực.
xác định phạm vi của thứ nguyên.
Cho biết ứng dụng đang yêu cầu mã thông báo để truy cập nguồn cấp dữ liệu của Blogger. Chuỗi phạm vi cần sử dụng là http://www.blogger.com/feeds/ (dĩ nhiên là được mã hoá URL).
bảo mật
Cho biết ứng dụng có yêu cầu mã thông báo bảo mật hay không.
phiên hoạt động
Cho biết liệu có thể đổi mã thông báo được trả về lấy mã thông báo đa mục đích (phiên hoạt động) hay không.

URL AuthSubRequest có thể có dạng như sau:

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

Người dùng truy cập đường liên kết đến trang web của Google và xác thực với Tài khoản Google của họ.

Sau khi người dùng xác thực, hệ thống AuthSub sẽ chuyển hướng họ đến URL mà bạn đã chỉ định trong tham số truy vấn next của URL AuthSubRequest. Hệ thống AuthSub sẽ thêm một mã thông báo xác thực vào URL đó, dưới dạng giá trị của tham số truy vấn token. Ví dụ:

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

Giá trị mã thông báo này đại diện cho mã thông báo AuthSub dùng một lần. Trong ví dụ này, vì session=1 được chỉ định, nên bạn có thể đổi mã thông báo này lấy mã thông báo phiên AuthSub bằng cách gọi dịch vụ AuthSubSessionToken với mã thông báo dùng một lần trong tiêu đề Uỷ quyền như sau:

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

Phản hồi của dịch vụ AuthSubSessionToken bao gồm một tiêu đề Token chứa mã thông báo phiên và một tiêu đề Expiration cho biết mã thông báo sẽ có hiệu lực trong bao lâu.

Sau đó, ứng dụng của bạn có thể sử dụng giá trị mã thông báo phiên trong tiêu đề Authorization của các hoạt động tương tác tiếp theo với Blogger.

Dưới đây là ví dụ về một yêu cầu HTTP chứa mã thông báo không an toàn mà bạn có thể gửi đến 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

Xác thực tên người dùng/mật khẩu ClientLogin

Sử dụng phương thức xác thực ClientLogin nếu ứng dụng của bạn là một ứng dụng "được cài đặt" độc lập, dành cho một người dùng (chẳng hạn như ứng dụng dành cho máy tính). Để yêu cầu mã thông báo xác thực bằng cơ chế ClientLogin, hãy gửi yêu cầu POST đến URL sau:

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

Phần thân POST phải chứa một tập hợp các tham số truy vấn giống như tham số được chuyển bởi biểu mẫu HTML, sử dụng loại nội dung application/x-www-form-urlencoded. Các tham số này là:

Email
Địa chỉ email của người dùng.
Đã nhận
Mật khẩu của người dùng.
dịch vụ
Tên dịch vụ Blogger là blogger. (Để biết các tên dịch vụ khác, hãy xem danh sách tên dịch vụ.)
accountType
Bạn phải luôn đặt giá trị này thành GOOGLE khi sử dụng API Blogger. Nếu bạn không đặt thông số này, những người dùng cũng có tài khoản G Suite sẽ không truy cập được.
nguồn
Xác định ứng dụng của bạn. Phải có dạng companyName-applicationName-versionID. Ví dụ sử dụng tên exampleCo-exampleApp-1.

Để biết thêm thông tin về các thông số, hãy xem tài liệu Xác thực cho ứng dụng đã cài đặt.

Nếu yêu cầu xác thực không thành công, thì máy chủ sẽ trả về một mã trạng thái HTTP 403 Forbidden.

Nếu thành công, máy chủ sẽ trả về mã trạng thái HTTP 200 OK, cùng với 3 mã dài gồm chữ và số trong phần nội dung phản hồi: SID, LSID và Auth. Giá trị xác thực là mã thông báo uỷ quyền mà bạn sẽ gửi cho Blogger cùng với mỗi yêu cầu tiếp theo. Vì vậy, hãy giữ một bản sao của giá trị đó. Bạn có thể bỏ qua các giá trị SID và LSID.

Vì tất cả các yêu cầu đối với nguồn cấp dữ liệu riêng tư đều yêu cầu xác thực, bạn phải đặt tiêu đề Uỷ quyền trong tất cả các tương tác tiếp theo với Blogger bằng định dạng sau:

Authorization: GoogleLogin auth=yourAuthToken

Trong đó yourAuthToken là chuỗi Xác thực do yêu cầu ClientLogin trả về.

Để biết thêm thông tin về việc xác thực ClientLogin, bao gồm cả các yêu cầu và phản hồi mẫu, hãy xem tài liệu về Xác thực cho ứng dụng đã cài đặt.

Lưu ý: Sử dụng cùng một mã thông báo cho tất cả yêu cầu trong một phiên cụ thể; không lấy mã thông báo mới cho mỗi yêu cầu trên Blogger.

Lưu ý: Như đã mô tả trong tài liệu ClientLogin, yêu cầu xác thực có thể không thành công và yêu cầu thử thách CAPTCHA. Nếu bạn muốn Google đưa ra và xử lý thử thách CAPTCHA, hãy chuyển người dùng đến https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger (thay vì đến URL xử lý CAPTCHA trong tài liệu ClientLogin).

Truy xuất danh sách blog

Blogger Data API cung cấp một nguồn cấp dữ liệu liệt kê các blog của một người dùng cụ thể; nguồn cấp dữ liệu đó được gọi là "metafeed".

Gửi một HTTP GET đến URL sau để truy xuất danh sách blog:

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

Lưu ý: Bạn cũng có thể thay thế default cho mã nhận dạng người dùng để yêu cầu Blogger trả về danh sách blog cho người dùng có thông tin đăng nhập đi kèm với yêu cầu.

Một mục nhập trong metafeed có thể có dạng như sau:

<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>

Để biết thông tin về ý nghĩa của từng phần tử, hãy xem tài liệu Tài liệu tham khảo về giao thức API dữ liệu của Google hoặc thông số kỹ thuật Atom 1.0.

Nếu yêu cầu của bạn không thành công vì lý do nào đó, Blogger có thể trả về một mã trạng thái khác. Bạn cũng có thể xem thêm thông tin về mã trạng thái HTTP trong tài liệu Tài liệu tham khảo về giao thức API dữ liệu của Google.

Tạo bài đăng

Blogger Data API cho phép bạn tạo và xuất bản các mục mới trên blog, cũng như tạo bản nháp của các mục nhập.

Xuất bản bài đăng trên blog

Sau khi xác thực, bạn có thể xuất bản các mục mới trên blog.

Trước tiên, hãy tạo một bản trình bày XML về bài đăng mà bạn muốn xuất bản. XML này cần phải ở dạng phần tử <entry> Atom, có thể có dạng như sau:

<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>

Lưu ý: Chúng tôi hiện không hỗ trợ việc đặt tác giả tuỳ chỉnh cho bài đăng. Tất cả các bài đăng mới sẽ xuất hiện như thể chúng được tạo bởi người dùng hiện đã được xác thực.

Để xuất bản, hãy gửi mục nhập này tới URL của bài đăng trên blog như sau. Trước tiên, hãy đặt phần tử Atom <entry> vào phần nội dung của yêu cầu POST mới bằng cách sử dụng loại nội dung application/atom+xml. Sau đó, hãy tìm URL bài đăng của blog trong nguồn cấp dữ liệu meta bằng cách tìm phần tử <link>, trong đó thuộc tính rel kết thúc bằng #post. URL bài đăng trên blog được gán làm thuộc tính href của phần tử này, ở định dạng sau:

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

Lưu ý: URL này giống với URL trong thẻ <link rel="service.post"> xuất hiện trong phần <head> của phiên bản blog mà con người có thể đọc được.

Blogger tạo một bài đăng trên blog bằng mục nhập bạn đã gửi, sau đó trả về mã trạng thái HTTP 201 CREATED, cùng với bản sao bài đăng mới ở dạng phần tử <entry>. Mục nhập được trả về giống với mục bạn đã gửi, nhưng cũng chứa nhiều phần tử do Blogger thêm vào, chẳng hạn như phần tử <id>.

Nếu yêu cầu của bạn không thành công vì lý do nào đó, Blogger có thể trả về một mã trạng thái khác. Để biết thông tin về mã trạng thái, hãy xem tài liệu tham khảo về giao thức Google Data API.

Đang tạo một bài đăng nháp trên blog

Bài đăng nháp được tạo giống như các bài đăng công khai, nhưng thêm phần tử <app:control> vào mục nhập cho biết rằng bài đăng chưa nên (chưa) được xuất bản.

Phần tử <app:control> này phải chứa một phần tử <app:draft> duy nhất làm phần tử con:

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

Dữ liệu có trong phần tử <app:draft> phải là chuỗi yes để bài đăng được nhận dạng là bản nháp.

Bạn có thể chuyển một bài đăng nháp hiện có trên blog thành bài đăng đã xuất bản bằng cách truy xuất bài đăng nháp, đặt dữ liệu của phần tử <app:draft> thành chuỗi no, sau đó cập nhật bài đăng. Việc truy xuất và cập nhật bài đăng sẽ được đề cập trong hai phần tiếp theo.

Lưu ý: Để biết thêm thông tin về Giao thức xuất bản Atom, bao gồm cả không gian tên <app:control><app:draft>, hãy xem nội dung RFC 5023.

Truy xuất bài đăng

Các phần sau mô tả cách truy xuất danh sách các bài đăng trên blog, có và không có tham số truy vấn.

Bạn có thể truy vấn nguồn cấp dữ liệu công khai của Blogger mà không cần xác thực. Do đó, bạn không cần đặt tham số Uỷ quyền khi truy xuất bài đăng trên blog từ một blog công khai.

Truy xuất tất cả bài đăng trên blog

Để truy xuất bài đăng của người dùng, hãy gửi yêu cầu HTTP GET đến URL nguồn cấp dữ liệu của blog. Sau đó, Blogger trả về một nguồn cấp dữ liệu chứa các mục blog thích hợp. Ví dụ: để nhận danh sách các bài đăng trên blog cho liz@gmail.com, hãy gửi yêu cầu HTTP sau đây tới Blogger (tất nhiên là kèm theo giá trị thích hợp thay cho blogID):

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

Sau đó, Blogger sẽ trả về một mã trạng thái HTTP 200 OK và một nguồn cấp dữ liệu Atom 1.0 tiêu chuẩn có chứa các bài đăng trên blog.

Sau đây là ví dụ về nguồn cấp dữ liệu cho một blog chỉ có một bài đăng. Lưu ý là chúng tôi đã chỉnh sửa ví dụ này một chút để con người dễ đọc hơn. Cụ thể, nguồn cấp dữ liệu Blogger thực sự sẽ chứa mã và URL thực.

<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>

Truy xuất bài đăng bằng tham số truy vấn

Blogger Data API cho phép bạn yêu cầu một tập hợp các mục khớp với các tiêu chí đã chỉ định, chẳng hạn như yêu cầu các bài đăng trên blog được xuất bản hoặc cập nhật trong một phạm vi ngày nhất định.

Ví dụ: để gửi một truy vấn theo phạm vi ngày, hãy thêm các tham số published-minpublished-max vào URL yêu cầu. Để nhận tất cả các mục trên blog được tạo từ ngày 16 tháng 3 năm 2008 đến ngày 24 tháng 3 năm 2008, hãy gửi yêu cầu HTTP đến URL nguồn cấp dữ liệu của blog:

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

Khi bạn gửi yêu cầu GET đó, Blogger sẽ trả về mã trạng thái HTTP 200 OK và nguồn cấp dữ liệu chứa mọi bài đăng trên blog đã được tạo trong phạm vi ngày mà bạn đã chỉ định.

Các tham số updated-minupdated-max cũng có thể được dùng để cập nhật tất cả các mục trên blog trong một phạm vi nhất định. Tuy nhiên, hãy lưu ý rằng các tham số này sẽ bị bỏ qua trừ phi tham số orderby cũng được đặt thành updated.

Blogger Data API hỗ trợ các tham số truy vấn sau đây:

thay thế
Loại nguồn cấp dữ liệu cần trả về, chẳng hạn như atom (mặc định) hoặc rss.
/category
Chỉ định danh mục (còn gọi là nhãn) để lọc kết quả nguồn cấp dữ liệu. Ví dụ: http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie trả về các mục nhập có cả nhãn FritzLaurie.
max-results
Số mục nhập tối đa cần trả về.
theo thứ tự
Thứ tự trả về mục nhập, chẳng hạn như lastmodified (giá trị mặc định), starttime hoặc updated.
phút xuất bản, tối đa được xuất bản
Giới hạn về ngày xuất bản bài dự thi.
start-index
Chỉ mục dựa trên 1 của kết quả đầu tiên cần truy xuất (để phân trang).
tối thiểu cập nhật, cập nhật tối đa
Giới hạn về ngày cập nhật mục nhập. Các tham số truy vấn này sẽ bị bỏ qua trừ phi bạn đặt tham số orderby thành updated.

Để biết thêm thông tin về tham số truy vấn, hãy xem Hướng dẫn tham khảo API dữ liệu của BloggerHướng dẫn tham khảo về API dữ liệu của Google.

Đang cập nhật bài đăng

Để cập nhật một bài đăng hiện có trên blog, trước tiên, bạn cần truy xuất mục bạn muốn cập nhật, sau đó sửa đổi mục đó. Sau đó, bạn gửi yêu cầu PUT đến URL chỉnh sửa của bài đăng với mục nhập cập nhật trong nội dung bài đăng. Hãy đảm bảo rằng giá trị <id> trong mục nhập mà bạn PUT khớp chính xác với <id> của mục nhập hiện có.

URL chỉnh sửa được làm nổi bật trong mục nhập sau:

<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>

LƯU Ý QUAN TRỌNG: Để đảm bảo khả năng tương thích chuyển tiếp, hãy nhớ khi PUT một mục cập nhật, bạn sẽ giữ lại tất cả mã XML có khi bạn truy xuất mục nhập từ Blogger. Nếu không, khi chúng tôi triển khai nội dung mới và đưa các phần tử <new-awesome-feature> vào nguồn cấp dữ liệu, ứng dụng của bạn sẽ không trả về các phần tử đó và người dùng của bạn sẽ bỏ lỡ. Các thư viện ứng dụng API Dữ liệu của Google đều xử lý đúng vấn đề này, vì vậy, nếu đang dùng một trong các thư viện thì bạn đã hoàn tất.

Lưu ý: Hiện chúng tôi không hỗ trợ tính năng sửa đổi dữ liệu tác giả liên kết với bài đăng.

Mẹo khắc phục sự cố: Một số tường lửa chặn thông báo HTTP PUT. Để khắc phục vấn đề này, bạn có thể thêm tiêu đề X-HTTP-Method-Override: PUT vào yêu cầu POST. Để biết thông tin chi tiết, hãy xem tài liệu Kiến thức cơ bản về giao thức API Dữ liệu của Google.

Xoá bài đăng

Để xoá một bài đăng, hãy gửi yêu cầu DELETE đến URL chỉnh sửa của bài đăng đó. Đây cũng là URL dùng để cập nhật bài đăng.

Mẹo khắc phục sự cố: Một số tường lửa chặn thông báo HTTP DELETE. Để khắc phục vấn đề này, bạn có thể thêm tiêu đề X-HTTP-Method-Override: DELETE vào yêu cầu POST. Để biết thông tin chi tiết, hãy xem tài liệu Kiến thức cơ bản về giao thức API Dữ liệu của Google.

Bình luận

Blogger Data API cho phép tạo, truy xuất và xoá bình luận. Tính năng cập nhật nhận xét không được hỗ trợ (trong giao diện web cũng không hỗ trợ tính năng này).

Đang tạo nhận xét

Để đăng bình luận, hãy tạo một phần tử Atom <entry> như sau:

  <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>

Để xuất bản nhận xét này, hãy đặt phần tử Atom <entry> vào phần nội dung của yêu cầu POST mới bằng cách sử dụng loại nội dung application/atom+xml. Sau đó, hãy gửi yêu cầu POST đến URL Blogger thích hợp:

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

Lưu ý: Hiện tại, bạn chỉ có thể đăng nhận xét lên blog do người dùng đã xác thực sở hữu.

Lưu ý: Chúng tôi hiện không hỗ trợ việc đặt tác giả tuỳ chỉnh cho nhận xét. Tất cả các nhận xét mới sẽ xuất hiện như thể chúng do người dùng hiện đã xác thực tạo ra.

Truy xuất bình luận

Bạn có thể truy xuất nhận xét cho một bài đăng cụ thể bằng cách gửi GET đến URL nguồn cấp dữ liệu nhận xét của bài đăng này:

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

Hoặc bạn có thể nhận nhận xét từ tất cả các bài đăng bằng cách sử dụng URL nguồn cấp dữ liệu nhận xét của blog:

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

Các yêu cầu này trả về một nguồn cấp dữ liệu bình luận có dạng như sau:

<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>

Đang xoá bình luận

Để xoá một bình luận, hãy gửi yêu cầu DELETE đến URL chỉnh sửa của bình luận. URL này được làm nổi bật trong phần bình luận bên trên.

Định dạng xuất

Blogger cho phép người dùng xuất và nhập blog bằng tệp xuất của Blogger. Tệp xuất này chứa tất cả bài đăng và nhận xét của một blog. Định dạng của tệp xuất giống hệt như định dạng Atom được mô tả trong các phần về cách truy xuất bài đăng và bình luận. Tệp xuất này sẽ chứa nội dung của nguồn cấp dữ liệu bài đăng và nội dung của nguồn cấp dữ liệu nhận xét được kết hợp thành một tài liệu.

Để xuất hoặc nhập dữ liệu blog bằng định dạng xuất, bạn có thể truy cập trang Cài đặt cho blog đó. Để truy xuất tệp xuất cho blog bằng Data API, hãy sử dụng URL sau:

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

Để nhập tệp xuất, hãy tạo một yêu cầu POST đến URL sau đây với nội dung của tệp xuất là dữ liệu yêu cầu và application/atom+xml là loại nội dung:

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

Không có URL nào cho ở trên hỗ trợ tham số truy vấn. Cả hai yêu cầu này đều phải chứa thông tin xác thực và chỉ quản trị viên blog mới có thể nhập/xuất blog bằng các URL nguồn cấp dữ liệu này.

Lưu ý: Nếu bạn đang tạo tệp xuất riêng trên Blogger, thì hiện có một quy định hạn chế về thứ tự của các mục đăng bài và bình luận. Tệp xuất của Blogger sẽ liệt kê tất cả các bài đăng trước, sau đó là tất cả nhận xét. Bạn được phép can thiệp vào bài đăng và mục nhận xét, miễn là mục nhập nhận xét xuất hiện sau bài đăng có nhận xét đó.

Để biết thêm thông tin về cách Blogger sử dụng định dạng Atom trong tệp xuất, hãy xem phần Hướng dẫn tham khảo về giao thức.

Trở lại đầu trang