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

Lưu ý quan trọng: Chúng tôi sẽ ngừng hỗ trợ Google Data API phiên bản 2.0 kể từ ngày 30 tháng 9 năm 2024. Để đảm bảo chức năng không bị gián đoạn, hãy cập nhật các ứng dụng chạy Google Data API phiên bản 2.0 lên phiên bản API mới nhất. Để dùng 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. Lưu ý: mặc dù một số yêu cầu GET (chẳng hạn như bài đăng trên trang thông tin) sẽ tiếp tục được hỗ trợ dưới dạng URL nguồn cấp dữ liệu, nhưng vẫn có những điểm khác biệt nhỏ trong cách hoạt động của những yêu cầu này. Để biết thông tin chi tiết, hãy tham khảo tài liệu trên trang Trợ giúp Blogger.

Blogger Data API cho phép các ứng dụng khách xem và cập nhật nội dung 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 bài đăng trên blog mới, chỉnh sửa hoặc xoá bài đăng trên blog hiện có và truy vấn các bài đăng trên blog đáp ứng 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 các 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à HTTPS thô. Sau khi đọc tài liệu này, bạn có thể muốn tìm hiểu thêm về cách tương tác với API qua thư viện ứng dụng bằng cách đọc các phần dành riêng cho ngôn ngữ lập trình trong hướng dẫn của 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 các ứng dụng khách có thể tương tác với Blogger bằng XML và HTTPS.

Tài liệu này giả định rằng bạn đã hiểu các ý tưởng chung của 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 trang hướng dẫn về các phần mềm tiện ích đó.

Để biết thông tin tham khảo API Dữ liệu của Blogger, hãy xem Hướng dẫn tham chiếu giao thức.

Bắt đầu

Tạo tài khoản Blogger

Bạn nên đăng ký 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 bạn đã có Tài khoản Google thì mọi thứ đã xong.

Ủy quyền yêu cầu

Khi yêu cầu dữ liệu người dùng không công khai, ứng dụng của bạn phải bao gồm mã thông báo uỷ quyền. Mã này cũng giúp Google xác định ứng dụng của bạn.

Giới thiệu về giao thức cấp phép

Bạn nên dùng OAuth 2.0 để uỷ quyền cho các yêu cầu.

GData API của Blogger cũng hỗ trợ các tuỳ chọn uỷ quyền cũ, chẳng hạn như OAuth 1.0, AuthSub hoặc ClientLogin. Tuy nhiên, trong hầu hết các trường hợp, bạn không nên sử dụng các tuỳ chọn khác đó. Nếu ứng dụng của bạn đã sử dụng các tuỳ chọn đó, bạn nên di chuyển sang OAuth 2.0 (nếu có thể).

Nếu ứng dụng của bạn có một số yêu cầu uỷ quyền bất thường, chẳng hạn như đăng nhập cùng lúc với việc yêu cầu quyền truy cập dữ liệu (kết hợp) hoặc uỷ quyền trên toàn miền (2LO), thì hiện tại, bạn không thể sử dụng mã thông báo OAuth 2.0. Trong những trường hợp như vậy, bạn phải sử dụng mã thông báo OAuth 1.0.

Ủy quyền cho yêu cầu bằng OAuth 2.0

Các yêu cầu gửi dữ liệu không công khai của người dùng đến API GData của Blogger phải được một người dùng đã xác thực cho phép.

Thông tin chi tiết về quy trình uỷ quyền (hay còn gọi là "quy trình") của OAuth 2.0 sẽ khác nhau đôi chút tuỳ thuộc vào loại ứng dụng bạn đang viết. Quy trình chung sau đây áp dụng cho mọi loại ứng dụng:

  1. Khi tạo ứng dụng, bạn phải đăng ký ứng dụng đó với Google. Sau đó, Google sẽ cung cấp thông tin mà bạn sẽ cần sau này, chẳng hạn như mã ứng dụng khách và mật khẩu ứng dụng khách.
  2. Khi cần quyền truy cập vào dữ liệu người dùng, ứng dụng của bạn sẽ yêu cầu Google cung cấp một phạm vi truy cập cụ thể.
  3. Google hiển thị hộp thoại OAuth cho người dùng để yêu cầu họ cho phép ứng dụng của bạn yêu cầu một số dữ liệu của họ.
  4. Nếu người dùng đồng ý, thì Google sẽ cấp cho ứng dụng của bạn một mã truy cập ngắn hạn.
  5. Ứng dụng của bạn yêu cầu dữ liệu người dùng, đính kèm mã truy cập vào yêu cầu.
  6. Nếu xác định rằng yêu cầu của bạn và mã thông báo là hợp lệ, Google sẽ trả về dữ liệu được yêu cầu.

Một số quy trình có các bước bổ sung khác, chẳng hạn như sử dụng mã làm mới để lấy mã truy cập mới. Để biết thông tin chi tiết về quy trình cho nhiều loại ứng dụng, hãy xem tài liệu về OAuth 2.0 của Google.

Dưới đây là thông tin về phạm vi OAuth 2.0 cho API GData của Blogger:

https://www.blogger.com/feeds/

Để yêu cầu quyền truy cập bằng OAuth 2.0, ứng dụng của bạn cần thông tin về phạm vi, cũng như thông tin mà Google cung cấp trong quá trình đăng ký ứng dụng (chẳng hạn như ID ứng dụng khách và/hoặc mật khẩu ứng dụng khách).

Mẹo: Thư viện ứng dụng API của Google có thể xử lý một số quy trình cấp phép cho bạn. Thư viện này được cung cấp cho nhiều ngôn ngữ lập trình. Hãy xem trang Thư viện và Mẫu để biết thêm thông tin chi tiết.

Chỉ định một phiên bản

Mọi yêu cầu mà bạn gửi bằng Blogger Data API phải chỉ định phiên bản 2 của API.

Để chỉ định số phiên bản, hãy dùng tiêu đề HTTP GData-Version:

GData-Version: 2

Ngoài ra, nếu không thể đặt tiêu đề HTTP, bạn có thể chỉ định v=2 làm tham số truy vấn trong URL. Tuy nhiên, tiêu đề HTTP sẽ được ưu tiên nếu có thể.

Lưu ý: Thư viện ứng dụng sẽ tự động cung cấp các tiêu đề phiên bản phù hợp. Vì vậy, đừng dùng tham số truy vấn v=2 khi đang sử dụng thư viện ứng dụng.

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 HTTP GET đến URL sau để truy xuất danh sách blog:

https://www.blogger.com/feeds/profileID/blogs

Trong đó, mã hồ sơ là số trong URL trang hồ sơ của người dùng.

Lưu ý: Bạn cũng có thể thay thế default cho mã nhận dạng người dùng. Mã này sẽ 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 yêu cầu.

Mục nhập trong siêu dữ liệu có thể có dạng như sau:

<entry gd:etag='W/"D08FQn8-eip7ImA9WxZbFEw."'>
  <id>tag:blogger.com,1999:user-userNumber.blog-blogID</id>
  <published>2006-08-02T18:44:43.089-07:00</published>
  <updated>2008-04-17T00:03:33.152-07:00</updated>
  <title>Lizzy's Diary</title>
  <summary type='html'>Being the journal of Elizabeth Bennet</summary>
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/profileID/blogs/blogID' />
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/' />
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default' />
  <link rel='http://schemas.google.com/g/2005#post'
    type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default' />
  ...
  <author>
    <name>Elizabeth Bennet</name>
    <uri>http://www.blogger.com/profile/profileID</uri>
    <email>noreply@blogger.com</email>
  </author>
</entry>

Để biết thêm thông tin về ý nghĩa của từng yếu 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 quy cách Atom 1.0.

Nếu yêu cầu của bạn không thành công vì một 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 bài viết mới trên blog, cũng như tạo bản nháp cho các bài viết.

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 của bài đăng cần xuất bản. XML này phải ở dạng phần tử <entry> Atom 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 ý: Hiện chưa hỗ trợ việc đặt tác giả tuỳ chỉnh cho bài đăng. Tất cả bài đăng mới sẽ hiển thị như thể chúng do người dùng hiện đã xác thực tạo.

Để xuất bản bài viết này, hãy gửi bài viết tới URL bài đăng của blog như sau. Trước tiên, hãy đặt phần tử Atom <entry> của bạn vào phần nội dung của một yêu cầu POST mới, sử dụng loại nội dung application/atom+xml. Sau đó, hãy tìm URL bài đăng trên blog trong siêu dữ liệu 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 cung cấp dưới dạng thuộc tính href của phần tử này và có định dạng như sau:

https://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 của bài đăng mới ở dạng phần tử <entry>. Mục đượ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ì một 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 API Dữ liệu của Google.

Tạo bài đăng nháp trên blog

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

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://www.w3.org/2007/app'>
  <app:draft>yes</app:draft>
</app:control>

Dữ liệu chứa trong phần tử <app:draft> phải là chuỗi yes thì bài đăng mới đượ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 một 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> vào chuỗi no rồi cập nhật bài đăng đó. Việc truy xuất và cập nhật bài đăng được đề cập trong 2 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 RFC 5023.

Truy xuất bài đăng

Các phần sau mô tả cách truy xuất danh sách 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 sẽ trả về một nguồn cấp dữ liệu chứa các mục nhập 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à với giá trị thích hợp thay cho blogID):

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

Sau đó, Blogger sẽ trả về mã trạng thái HTTP 200 OK và nguồn cấp dữ liệu Atom 1.0 tiêu chuẩn 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 ý rằng chúng tôi đã chỉnh sửa một chút ví dụ này để làm cho ví dụ dễ đọc hơn một chút. Cụ thể, nguồn cấp dữ liệu Blogger thực chứa mã và URL thực.

<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css"
  type="text/css"?>
<feed xmlns='http://www.w3.org/2005/Atom'
    xmlns:gd='http://schemas.google.com/g/2005'
    gd:etag='W/"D08FQn8-eip7ImA9WxZbFEw."'>
  <id>tag:blogger.com,1999:blog-blogID</id>
  <updated>2008-04-17T00:03:33.152-07:00</updated>
  <title>Lizzy's Diary</title>
  <subtitle type='html'></subtitle>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default' />
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default' />
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/' />
  <author>
    <name>Elizabeth Bennet</name>
    <uri>http://www.blogger.com/profile/profileID</uri>
    <email>noreply@blogger.com</email>
  </author>
  <generator version='7.00'
    uri='http://www2.blogger.com'>Blogger</generator>
  <entry gd:etag='W/"D0YHRn84eip7ImA9WxZUFk8."'>
    <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
    <published>2008-04-07T20:25:00.005-07:00</published>
    <updated>2008-04-07T20:25:37.132-07:00</updated>
    <title>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='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID' />
    <link rel='self' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID' />
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2008/04/quite-disagreeable.html' />
    <author>
      <name>Elizabeth Bennet</name>
      <uri>http://www.blogger.com/profile/profileID</uri>
      <email>noreply@blogger.com</email>
    </author>
  </entry>
</feed>

Truy xuất lại bài đăng trên blog

Nếu muốn truy xuất một bài đăng mà bạn đã truy xuất trước đây, bạn có thể cải thiện hiệu suất bằng cách yêu cầu Blogger chỉ gửi bài đăng nếu bài đăng đó có thay đổi kể từ lần gần nhất bạn truy xuất bài đăng đó.

Để thực hiện loại truy xuất có điều kiện này, hãy gửi yêu cầu HTTP GET bao gồm tiêu đề HTTP If-None-Match. Trong tiêu đề, hãy chỉ định ETag của mục nhập. Bạn có thể tìm thấy loại thẻ này trong thuộc tính gd:etag của phần tử <entry>.

Ví dụ:

If-None-Match: W/"D08FQn8-eil7ImA9WxZbFEw."

Khi nhận được yêu cầu này, Blogger sẽ kiểm tra xem mục nhập mà bạn yêu cầu có cùng ETag với ETag mà bạn đã chỉ định hay không. Nếu ETag khớp, thì mục nhập đó sẽ không thay đổi và Blogger sẽ trả về mã trạng thái HTTP 304 Not Modified.

Nếu ETag không khớp, thì mục nhập đã được sửa đổi kể từ lần gần đây nhất bạn yêu cầu và Blogger sẽ trả về mục nhập đó.

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

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 nhập khớp với các tiêu chí đã chỉ định, chẳng hạn như yêu cầu xuất bản hoặc cập nhật các bài đăng trên blog trong một phạm vi ngày nhất định.

Ví dụ: để gửi một truy vấn phạm vi ngày, hãy thêm tham số published-minpublished-max vào URL yêu cầu. Để lấy 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 tới URL nguồn cấp dữ liệu của blog:

GET https://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ể dùng để cập nhật tất cả các bài viết trên blog trong một phạm vi nhất định. Tuy nhiên, xin 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:

alt
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 các danh mục (còn gọi là nhãn) để lọc kết quả của nguồn cấp dữ liệu. Ví dụ: https://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie trả về các mục có cả nhãn FritzLaurie.
max-results
Số lượng mục nhập tối đa cần trả về.
sắp xếp theo thứ tự
Thứ tự trả về các mục nhập, chẳng hạn như lastmodified (mặc định), starttime hoặc updated.
Tối đa xuất bản, tối đa xuất bản
Giới hạn về ngày phát hành mục nhập.
start-index
Chỉ mục dựa trên 1 của kết quả đầu tiên được truy xuất (dùng để phân trang).
tối thiểu cập nhật, tối đa cập nhật
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 tham số orderby được đặt thành updated.
path
Đường dẫn liên kết cố định của một bài đăng. Ví dụ: đối với bài đăng có URL http://google.com.vn/2011/08/bloggers-fresh-new-look.html, đường dẫn liên kết cố định là /2011/08/bloggers-fresh-new-look.html.
q
Chuỗi truy vấn văn bản đầy đủ. Thao tác này cho phép bạn tìm kiếm các bài đăng phù hợp với cụm từ tìm kiếm trên blog.

Để biết thêm thông tin về các 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.

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 truy xuất mục nhập mà bạn muốn cập nhật, sau đó sửa đổi mục đó rồi gửi yêu cầu PUT kèm theo mục đã cập nhật trong nội dung thông báo đến URL chỉnh sửa của bài đăng. Hãy đảm bảo rằng giá trị <id> trong mục nhập 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 đánh dấu trong mục sau:

<entry gd:etag='W/"CUYDSXo8fSp7ImA9WB9UFkU."'>
  <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>

QUAN TRỌNG: Để đảm bảo khả năng tương thích chuyển tiếp, hãy đảm bảo rằng khi PUT một mục nhập cập nhật, bạn giữ lại tất cả 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 phần tử <new-awesome-feature> vào nguồn cấp dữ liệu, khách hà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ỡ. Tất cả các thư viện ứng dụng của Google Data API đều xử lý đúng cách, vì vậy, nếu đang sử dụng một trong những thư viện thì bạn đã thiết lập xong.

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

Mẹo khắc phục sự cố: Một số tường lửa chặn thông báo HTTP PUT. Để giải quyết vấn đề này, bạn có thể đưa 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 chính 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. Để giải quyết vấn đề này, bạn có thể đưa 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á nhận xét. Tính năng cập nhật nhận xét không được hỗ trợ (cũng như không có trong giao diện web).

Tạo nhận xét

Để đăng một 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> trong phần nội dung của yêu cầu POST mới, sử dụng loại nội dung application/atom+xml. Sau đó, gửi yêu cầu POST đến URL Blogger thích hợp:

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

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

Lưu ý: Hiện tại, chúng tôi chưa hỗ trợ việc đặt tác giả tuỳ chỉnh cho bình luận. Tất 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.

Truy xuất nhận xét

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

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

Bạn cũng có thể lấy nhận xét từ tất 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 https://www.blogger.com/feeds/blogID/comments/default

Các yêu cầu này trả về nguồn cấp dữ liệu nhận xét giống như sau:

<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css"
  type="text/css"?>
<feed xmlns='http://www.w3.org/2005/Atom'
    xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/'
    xmlns:gd='http://schemas.google.com/g/2005'
    gd:etag='W/"CUYMQ348fyp7ImA9WB9UFkU."'>
  <id>tag:blogger.com,1999:blog-blogID.postpostID..comments</id>
  <updated>2007-12-14T17:46:22.077-08:00</updated>
  <title>Comments on Lizzy's Diary: Quite disagreeable</title>
  <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://www.blogger.com/feeds/blogID/postID/comments/default' />
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/2007/12/quite-disagreeable_5283.html' />
  <author>
    <name>Elizabeth Bennet</name>
    <uri>http://www.blogger.com/profile/profileID</uri>
    <email>noreply@blogger.com</email>
  </author>
  <generator version='7.00'
    uri='http://www.blogger.com'>Blogger</generator>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <entry gd:etag='W/"CUYCQX47eSp7ImA9WB9UFkU."'>
    <id>tag:blogger.com,1999:blog-blogID.post-commentID</id>
    <published>2007-12-14T17:46:00.001-08:00</published>
    <updated>2007-12-14T17:46:00.001-08:00</updated>
    <title>Darcy FTW!</title>
    <content type='html'>Darcy FTW!</content>
    <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/postID/comments/default/commentID' />
    <link rel='self' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/postID/comments/default/commentID' />
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2007/12/quite-disagreeable_5283.html?showComment=1197683160001#ccommentID'
      title='' />
    <author>
      <name>Elizabeth Bennet</name>
      <uri>http://www.blogger.com/profile/profileID</uri>
      <email>liz@gmail.com</email>
    </author>
    <thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0'
      href='http://blogName.blogspot.com/2007/12/quite-disagreeable_5283.html'
      ref='tag:blogger.com,1999:blog-blogID.post-postID'
      source='http://www.blogger.com/feeds/blogID/posts/default/postID'
      type='text/html' />
  </entry>
</feed>

Đang xoá nhận xét

Để xoá một nhận xét, hãy gửi yêu cầu DELETE đến URL chỉnh sửa của nhận xét đó. URL này được đánh dấu 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 của họ bằng cách sử dụ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ề 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 bình luận được kết hợp vào 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 của blog. Để truy xuất tệp xuất cho blog bằng Data API, hãy sử dụng URL sau:

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

Để nhập tệp xuất, hãy tạo một yêu cầu POST cho 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àm loại nội dung:

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

Không có URL nào cho các tham số truy vấn ở trên hỗ trợ. Cả hai yêu cầu đề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 trên Blogger của riêng mình, thì hiện có một quy định hạn chế về thứ tự của bài đăng và các mục nhập nhận xét. Trước tiên, tệp xuất của Blogger sẽ liệt kê tất cả bài đăng, sau đó là tất cả nhận xét. Bạn được phép xen kẽ các mục nhận xét và bài đăng, miễn là mục nhập nhận xét đó xuất hiện sau bài đăng 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 Hướng dẫn tham khảo về giao thức.

Trở lại đầu trang