Lưu ý quan trọng: Đây là phiên bản cũ của trang này. Đối với 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.
API Dữ liệu Blogger 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 Google Data.
Ứng dụng khách của bạn có thể sử dụng API Dữ liệu Blogger để 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 khớp với 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 API Dữ liệu Blogger, 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 API Dữ liệu bằng cách sử dụng XML thô và HTTP. 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à HTTP.
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ý một tài khoản Blogger để 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ì bạn đã sẵn sàng.
Xác thực với dịch vụ Blogger
Bạn có thể truy cập vào cả nguồn cấp dữ liệu công khai và riêng tư bằng Blogger Data API. Nguồn cấp dữ liệu công khai không yêu cầu xác thực, nhưng chỉ có thể đọc. Nếu bạn muốn chỉnh sửa 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ư. API 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 chung về việc xác thực bằng API Dữ liệu của Google, hãy xem tài liệu về 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 giả định rằng bạn đang cung cấp thông tin xác thực thích 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 sử dụng khi cần xác thực người dùng với Tài khoản Google. Nhà điều hành 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 thay mặt cho 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 về 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à đường liên kết dẫn 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ó trong URL AuthSubRequest:
- tiếp theo
- URL của trang mà Google sẽ chuyển hướng người dùng đến sau khi xác thực.
- phạm vi
- Cho biết ứng dụng đang yêu cầu mã thông báo để truy cập vào nguồn cấp dữ liệu Blogger. Chuỗi phạm vi cần sử dụng là
http://www.blogger.com/feeds/
(tất nhiên là được mã hoá URL). - bảo mật
- Cho biết liệu ứng dụng khách có đang yêu cầu mã thông báo bảo mật hay không.
- phiên
- Cho biết liệu mã thông báo được trả về có thể được đổi lấy mã thông báo nhiều lần sử dụng (phiên) 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 vào đường liên kết đến trang web của Google và xác thực vào 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ã 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ột 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 mã thông báo này có thể được trao đổi cho mã thông báo phiên AuthSub bằng cách gọi dịch vụ AuthSubSessionToken
bằng 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 dịch vụ AuthSubSessionToken bao gồm tiêu đề Token
chứa mã thông báo phiên và tiêu đề Expiration
cho biết thời gian mã thông báo còn hiệu lực.
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 lượt 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ài đặt", độc lập, dành cho một người dùng (chẳng hạn như ứng dụng 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 nội dung POST
phải chứa một tập hợp tham số truy vấn trông giống như các tham số được truyền qua một 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à:
- Địa chỉ email của người dùng.
- Passwd
- Mật khẩu của người dùng.
- dịch vụ
- Tên dịch vụ Blogger là
blogger
. (Để biết 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 tham 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 khách của bạn. Phải có dạng companyName-applicationName-versionID. Các ví dụ sử dụng tên
exampleCo-exampleApp-1
.
Để biết thêm thông tin về các thông số này, 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, máy chủ sẽ trả về mã trạng thái HTTP 403 Forbidden
.
Nếu thành công, máy chủ sẽ trả về một mã trạng thái HTTP 200 OK
, cùng với 3 mã gồm chữ và số dài trong nội dung phản hồi: SID, LSID và Auth. Giá trị Auth là mã thông báo uỷ quyền mà bạn sẽ gửi đến Blogger cùng với mỗi yêu cầu tiếp theo, vì vậy, hãy giữ lại 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 đến nguồn cấp dữ liệu riêng tư đều yêu cầu xác thực, nên bạn phải đặt tiêu đề Uỷ quyền trong tất cả các lượt tương tác tiếp theo với Blogger, sử dụng định dạng sau:
Authorization: GoogleLogin auth=yourAuthToken
Trong đó, yourAuthToken
là chuỗi Auth do yêu cầu ClientLogin trả về.
Để biết thêm thông tin về quy trình 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 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ả các yêu cầu trong một phiên nhất định; không lấy mã thông báo mới cho mỗi yêu cầu Blogger.
Lưu ý: Như mô tả trong tài liệu về ClientLogin, yêu cầu xác thực có thể không thành công và yêu cầu một 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ì URL xử lý CAPTCHA được cung cấp trong tài liệu ClientLogin).
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 GET
HTTP đến URL sau để truy xuất danh sách
các 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. Thao tác này sẽ yêu cầu 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> <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 quy cách 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.
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 tệp XML đại diện cho bài đăng cần xuất bản. Tệp XML này cần ở 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 ý: Chúng tôi hiện chưa hỗ trợ tính năng đặt tác giả tuỳ chỉnh cho bài đăng. Tất cả bài đăng mới sẽ xuất hiện như thể chúng do người dùng hiện đã xác thực tạo.
Để 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. Trước tiên, hãy đặt phần tử <entry>
của Atom vào 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 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 bài đăng của blog được cung cấp dưới dạng thuộc tính href
của phần tử này, có định dạng như 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 có thể đọc được.
Blogger tạo một bài đăng trên blog bằng mục nhập mà bạn đã gửi, sau đó trả về mã trạng thái HTTP 201 CREATED
, cùng với một bản sao của bài đăng mới ở dạng 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 giống 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 (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 chứa 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 phát hành Atom, bao gồm cả không gian tên <app:control>
và <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 thông 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 GET
HTTP đế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 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, với giá trị thích hợp thay cho blogID
):
GET http://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ế.
<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>
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-min
và published-max
vào URL yêu cầu. Để nhận tất cả các mục nhập 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 một 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ộ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-min
và updated-max
để cập nhật tất cả các mục trong 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ặcrss
. - /category
- Chỉ định 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ụ:
http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie
trả về các mục có cả nhãnFritz
vàLaurie
. - 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ặcupdated
. - published-min, published-max
- 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).
- updated-min, updated-max
- 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ừ khi tham số
orderby
được đặt thànhupdated
.
Để 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 Blogger và Hướng dẫn tham khảo API dữ liệu của Google.
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. 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'><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>
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 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 sẽ bỏ lỡ. Tất cả thư viện ứng dụng API Dữ liệu của Google đều xử lý vấn đề này một cách chính xác, vì vậy, nếu đang sử dụng một trong các thư viện này, bạn đã sẵn sàng.
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 thông báo HTTP PUT
. Để giải quyết 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 bình luận không được hỗ trợ (cũng không có trong giao diện web).
Tạo nhận xét
Để đăng bình luận, hãy tạo một phần tử <entry>
Atom 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ử <entry>
của Atom vào 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 http://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 ý: Chúng tôi hiện không hỗ trợ tính năng đặ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 đã được xác thực tạo ra.
Truy xuất bình luận
Bạn có thể truy xuất các bình luận cho một bài đăng cụ thể bằng cách gửi GET
đến URL của nguồn cấp dữ liệu bình luận của bài đăng này:
GET http://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 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>
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 nguồn cấp dữ liệu bình luậ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à bình luận của một blog. Định dạng của tệp xuất là định dạng Atom giống hệt như định dạng được mô tả trong các phần về việc 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 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 vào trang Cài đặt của blog. Để truy xuất tệp xuất cho một 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àm dữ liệu yêu cầu và
application/atom+xml
làm loại nội dung:
POST http://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 này cũng 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 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.