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

API Dữ liệu Blogger 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 Google Data.

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

Ngoài việc cung cấp một số thông tin cơ bản về những khả năng của Blogger Data API. Tài liệu này đưa ra ví dụ về các hoạt động tương tác cơ bản với Data API XML và HTTPS 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 bằng thư viện ứng dụng của chúng tôi 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 dành cho nhà phát triển này.

Nội dung

Đối tượng

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à HTTPS.

Tài liệu này giả định rằng bạn hiểu 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 hướng dẫn về các tiện ích đó.

Để biết thông tin tham khảo về Blogger Data API, hãy xem 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ý Tài khoản Blogger để thử nghiệm. Blogger sử dụng Tài khoản Google, vì vậy nếu bạn khi đã có Tài khoản Google, thế là bạn đã hoàn tất.

Ủ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ã 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 sử dụng OAuth 2.0 để cho phép thực hiện các yêu cầu.

Blogger GData API 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 trong 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 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 uy tín (2LO), thì bạn hiệ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.

Uỷ quyền cho các yêu cầu bằng OAuth 2.0

Yêu cầu đối với API GData của Blogger về dữ liệu người dùng không công khai phải được một người dùng đã xác thực cấp phép.

Thông tin chi tiết về quy trình uỷ quyền, hoặc "quy trình" cho OAuth 2.0 khác nhau 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 tất cả các loại ứng dụng:

  1. Khi tạo ứng dụng, bạn sẽ đăng ký với Google. Sau đó, Google cung cấp thông tin 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 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ã này là hợp lệ, Google sẽ trả về dữ liệu mà ứng dụng yêu cầu.

Một số quy trình cấp phép 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 các loại ứng dụng khác nhau, 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 của OAuth 2.0 cho Blogger API GData:

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 có phạm vi thông tin, cũng như thông tin mà Google cung cấp trong quá trình đăng ký đăng ký (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 Google có thể xử lý một số bước trong quy trình uỷ quyền cho bạn. Chúng có sẵn cho nhiều ngôn ngữ lập trình; hãy xem Thư viện và thẻ Đoạn nhạc để biết thêm thông tin chi tiết.

Chỉ định phiên bản

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

Để chỉ định số phiên bản, hãy sử 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, bạn nên sử dụng tiêu đề HTTP khi có thể.

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

Truy xuất danh sách blog

API Dữ liệu Blogger 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 các blog:

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

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

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

Một mục trong nguồn cấp dữ liệu 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ông tin về ý nghĩa của từng phần tử, hãy xem Tài liệu tham khảo về giao thức API dữ liệu hoặc Atom Quy cách 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ả lại 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, như cũng như tạo bản thảo 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. Tệp XML này cần có dạng phần tử <entry> của 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 ý: Việc đặt tác giả tùy chỉnh cho bài đăng là hiện không được hỗ trợ. 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 mục nhập này, hãy gửi mục nhập đó đến URL bài đăng của blog như sau. Đầu tiên, đặt phần tử Atom <entry> vào phần nội dung của phần tử mới Yêu cầu POST, sử dụng nội dung application/atom+xml loại. Sau đó, hãy tìm URL bài đăng của blog trong nguồn cấp dữ liệu siêu dữ liệu bằng cách xác định phần tử <link>, trong đó thuộc tính rel kết thúc bằng #post. URL của bài đăng trên blog này được gán tên là href của phần tử này, ở định dạng 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 có thể đọc được.

Blogger tạo bài đăng trên blog bằng mục nhập bạn đã gửi, sau đó trả về một HTTP 201 CREATED mã trạng thái, cùng với bản sao của bài đăng mới trong của một phần tử <entry>. Mục nhập được trả về giống với mục nhập 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 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ó Đã thêm phần tử <app:control> vào mục nhập cho biết rằng bài đăng không 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ử duy nhất Phần tử <app:draft> 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 có trong phần tử <app:draft> phải là chuỗi yes để bài đăng được công nhận là bài đăng nháp.

Bạn có thể chuyển 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, rồi cập nhật bài đăng. 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 phát hành 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 đây 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ừ 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 tới URL nguồn cấp dữ liệu của blog. Sau đó, Blogger trả về nguồn cấp dữ liệu chứa blog phù hợp mục nhập. Ví dụ: để nhận danh sách bài đăng trên blog của liz@gmail.com, hãy gửi yêu cầu HTTP sau đây đến 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à một 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. Xin lưu ý rằng chúng tôi đã chỉnh sửa một chút ví dụ này để dễ đọc hơn. Cụ thể, nguồn cấp dữ liệu thực trên Blogger chứa mã nhận dạng và URL thực tế.

<?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 đó, bạn có thể cải thiện hiệu quả bằng cách yêu cầu Blogger chỉ gửi bài đăng nếu bài đăng đó đã thay đổi kể từ lần gần nhất bạn truy xuất.

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

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 bạn yêu cầu có cùng ETag với ETag bạn chỉ định hay không. Nếu ETag khớp, thì mục nhập chưa thay đổi và Blogger 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 thời gian bạn yêu cầu và Blogger trả lại mục nhập.

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

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

API Dữ liệu Blogger cho phép bạn yêu cầu một tập hợp các mục phù hợp với tiêu chí đã chỉ định, chẳng hạn như yêu cầu 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 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. Để có tất cả các mục blog được tạo từ ngày 16 tháng 3 năm 2008 đến ngày 24 tháng 3 năm 2008, gửi một HTTP yêu cầu 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ột mã trạng thái HTTP 200 OK và một 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.

Bạn cũng có thể sử dụng các tham số updated-minupdated-max để 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, xin lưu ý rằng các thông số này sẽ bị bỏ qua trừ phi thông 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 danh mục (còn gọi là nhãn) để lọc kết quả 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 nhập có cả nhãn FritzLaurie.
max-results
Số mục nhập tối đa cần trả về.
orderby
Thứ tự trả về các mục nhập, chẳng hạn như lastmodified (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 mục nhập.
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.
đường dẫn
Đường dẫn liên kết cố định của một bài đăng. Ví dụ: đối với một bài đăng có URL http://buzz.blogger.com/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 toàn văn. Tính năng này cho phép bạn tìm kiếm các bài đăng trên blog khớp với một cụm từ tìm kiếm.

Để 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 API dữ liệu của Google.

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

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

URL chỉnh sửa được làm nổi bật trong mục nhập 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>

LƯU Ý 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 đã cập nhật, bạn sẽ giữ lại tất cả XML có sẵn khi truy xuất mục đó từ Blogger. Nếu không, khi chúng ta triển khai nội dung mới và đưa <new-awesome-feature> vào trong nguồn cấp dữ liệu, khách hàng của bạn sẽ không trả lại các phần tử đó và người dùng của bạn sẽ bỏ lỡ bị loại. Nhóm Google Tất cả các thư viện ứng dụng API Dữ liệu đều xử lý chính xác vấn đề này, vì vậy nếu bạn đang sử dụng một trong những thư viện bạn đã thiết lập xong.

Lưu ý: Hiện tại, chúng tôi không hỗ trợ việc 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 HTTP PUT tin nhắn. Để giải quyết vấn đề này, bạn có thể thêm Tiêu đề X-HTTP-Method-Override: PUT trong yêu cầu POST. Để biết chi tiết, hãy xem Google Data API tài liệu cơ bản về giao thức.

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 HTTP DELETE tin nhắn. Để giải quyết vấn đề này, bạn có thể thêm Tiêu đề X-HTTP-Method-Override: DELETE trong POST yêu cầu. Để biết chi tiết, hãy xem Google Data API tài liệu cơ bản về giao thức.

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ợ (hoặc tính năng này cũng không có trên web giao diện).

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

Để đăng nhận xét này, hãy đặt phần tử Atom <entry> của bạn 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 đó, hãy 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 một blog do người dùng đã xác thực sở hữu.

Lưu ý: Việc đặt tác giả tuỳ chỉnh cho bình luận mới là hiện không được hỗ trợ. 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 đã được 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 vào 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

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

GET https://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:

<?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á bình luận

Để xoá một bình luận, hãy gửi yêu cầu DELETE đến phần chỉnh sửa của bình luận đó URL. 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ính năng xuất trên Blogger tệp. Tệp xuất này chứa tất cả bài đăng và bình luận của một blog. Chiến lược phát hành đĩa đơn cho tệp xuất giống hệt như định dạng Atom được mô tả trong về cách truy xuất bài đăng và nhận xét. Tệp xuất này sẽ chứa kết hợp 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 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 cho blog. Để truy xuất tệp xuất cho một trang web 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 phương thức URL tiếp theo với nội dung của tệp xuất dưới dạng 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

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

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

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