Lưu ý quan trọng: Chúng tôi sẽ ngừng hỗ trợ API JSON 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 JSON phiên bản 2.0 lên phiên bản API mới nhất. Đố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.
Tài liệu này mô tả cách sử dụng các tính năng phổ biến của Blogger JSON API bằng cách sử dụng kiểu gọi RESTful.
Nội dung
Giới thiệu
Tài liệu này dành cho các nhà phát triển muốn viết ứng dụng có thể tương tác với Blogger JSON API. Blogger là một công cụ tạo trang web cho phép mọi người xuất bản suy nghĩ của mình một cách liên tục.
Nếu chưa hiểu rõ về các khái niệm của Blogger, bạn nên đọc bài viết Bắt đầu trước khi bắt đầu lập trình.
Uỷ quyền cho các yêu cầu và xác định ứng dụng của bạn
Mọi yêu cầu mà ứng dụng của bạn gửi tới API JSON của Blogger đều cần xác định ứng dụng của bạn với Google. Có hai cách để xác định ứng dụng của bạn: sử dụng mã thông báo OAuth 2.0 (cũng cấp quyền cho yêu cầu) và/hoặc sử dụng khoá API của ứng dụng. Sau đây là cách xác định nên sử dụng tuỳ chọn nào trong số đó:
- Nếu yêu cầu cần được uỷ quyền (chẳng hạn như yêu cầu về dữ liệu riêng tư của một cá nhân), thì ứng dụng phải cung cấp mã thông báo OAuth 2.0 cùng với yêu cầu. Ứng dụng cũng có thể cung cấp khoá API, nhưng không bắt buộc phải cung cấp.
- Nếu yêu cầu không yêu cầu uỷ quyền (chẳng hạn như yêu cầu dữ liệu công khai), thì ứng dụng phải cung cấp khoá API hoặc mã thông báo OAuth 2.0 hoặc cả hai – bất kỳ lựa chọn nào thuận tiện nhất cho bạn.
Giới thiệu về giao thức cấp phép
Ứng dụng của bạn phải sử dụng OAuth 2.0 để cấp phép các yêu cầu. Chúng tôi không hỗ trợ giao thức cấp phép nào khác.
Lưu ý: API JSON của Blogger hiện không hỗ trợ việc đă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).
Uỷ quyền cho các yêu cầu bằng OAuth 2.0
Yêu cầu đối với API JSON 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.
Các chi tiết của quy trình uỷ quyền (hay còn gọi là "luồng") cho 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 tất cả các loại ứng dụng:
- Khi tạo ứng dụng, bạn sẽ đăng ký ứng dụng đó 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.
- Kích hoạt Blogger JSON API trong ngăn Dịch vụ của Google API Console. (Nếu không thấy API trong Console, hãy bỏ qua bước này.)
- 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ể.
- 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ọ.
- 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.
- Ứng dụng của bạn yêu cầu dữ liệu người dùng và đính kèm mã truy cập vào yêu cầu.
- 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 truy cập OAuth 2.0 cho API JSON của Blogger:
https://www.googleapis.com/auth/blogger
Để 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ư mã ứng dụng khách và/hoặc khoá bí mật của ứng dụng).
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. Thư viện này được cung cấp bằng nhiều ngôn ngữ lập trình. Hãy xem trang Thư viện và mẫu để biết thêm chi tiết.
Lấy và sử dụng khoá API
Yêu cầu gửi đến API JSON của Blogger để lấy dữ liệu công khai phải đi kèm với một giá trị nhận dạng, có thể là khoá API hoặc mã thông báo xác thực.
Để lấy khoá API, hãy truy cập vào Bảng điều khiển API. Trong ngăn Services (Dịch vụ), hãy kích hoạt [api_name]; nếu Điều khoản dịch vụ xuất hiện, hãy đọc và chấp nhận các điều khoản đó.
Tiếp theo, hãy chuyển đến ngăn Quyền truy cập API. Khoá API nằm gần cuối ngăn đó, trong mục có tiêu đề "Quyền truy cập API đơn giản".
Sau khi bạn có khoá API, ứng dụng của bạn có thể thêm tham số truy vấn key=yourAPIKey
vào tất cả URL yêu cầu.
Khoá API an toàn để nhúng vào URL; không cần mã hoá.
Làm việc với Blog
Truy xuất blog
Bạn có thể truy xuất thông tin cho một Tài nguyên blog cụ thể bằng cách gửi yêu cầu HTTP GET
đến URI của Blog. URI cho Tài nguyên blog có định dạng như sau:
https://www.googleapis.com/blogger/v2/blogs/blogId
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/2399953&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và dữ liệu blog:
200 OK { "kind": "blogger#blog", "id": "2399953", "name": "Blogger Buzz", "description": "The Official Buzz from Blogger at Google", "published": "2007-04-23T22:17:29.261Z", "updated": "2011-08-02T06:01:15.941Z", "url": "http://buzz.blogger.com/", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953", "posts": { "totalItems": 494, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts" }, "pages": { "totalItems": 2, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/pages" }, "locale": { "language": "en", "country": "", "variant": "" } }
Truy xuất blog của người dùng
Bạn có thể truy xuất danh sách blog của người dùng bằng cách gửi yêu cầu GET
HTTP đến URI Bộ sưu tập blog:
https://www.googleapis.com/blogger/v2/users/userId/blogs
Yêu cầu
Sau đây là ví dụ về một yêu cầu GET
liệt kê các blog của người dùng:
GET https://www.googleapis.com/blogger/v2/users/self/blogs
Authorization: /* OAuth 2.0 token here */
Lưu ý: Người dùng phải được xác thực để liệt kê các blog của riêng họ, vì vậy, bạn phải cung cấp tiêu đề HTTP Authorization
cùng với yêu cầu GET
.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và nội dung trình bày đầy đủ danh sách blog của người dùng:
200 OK { "kind": "blogger#blogList", "items": [ { "kind": "blogger#blog", "id": "4967929378133675647", "name": "Brett's Test Blawg", "description": "", "published": "2010-10-06T23:33:31.662Z", "updated": "2011-08-08T06:50:02.005Z", "url": "http://brettmorgan-test-blawg.blogspot.com/", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647", "posts": { "totalItems": 13, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/posts" }, "pages": { "totalItems": 1, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages" }, "locale": { "language": "en", "country": "", "variant": "" } } ] }
Làm việc với bài đăng
Truy xuất bài đăng trên blog
Bạn có thể truy xuất danh sách Bài đăng từ một Blog nhất định bằng cách gửi yêu cầu GET
đến URI Bộ sưu tập bài đăng. URI cho một Tập hợp bài đăng có định dạng như sau:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Bài đăng từ một Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và danh sách Bài đăng:
200 OK { "kind": "blogger#postList", "nextPageToken": "CgkIChiAkceVjiYQ0b2SAQ", "prevPageToken": "CgkIChDBwrK3mCYQ0b2SAQ", "items": [ { "kind": "blogger#post", "id": "7706273476706534553", "blog": { "id": "2399953" }, "published": "2011-08-01T19:58:00.000Z", "updated": "2011-08-01T19:58:51.947Z", "url": "http://buzz.blogger.com/2011/08/latest-updates-august-1st.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553", "title": "Latest updates, August 1st", "content": "elided for readability", "author": { "id": "401465483996", "displayName": "Brett Wiltshire", "url": "http://www.blogger.com/profile/01430672582309320414", "image": { "url": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png" } }, "replies": { "totalItems": "0", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553/comments" } }, { "kind": "blogger#post", "id": "6069922188027612413", elided for readability } ] }
Truy xuất một bài đăng cụ thể
Bạn có thể truy xuất một Bài đăng cụ thể từ một Blog bằng cách gửi yêu cầu GET
đến URI tài nguyên Bài đăng. URI cho Tài nguyên bài đăng có định dạng như sau:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Bài đăng từ một Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và nội dung của Bài đăng:
200 OK { "kind": "blogger#post", "id": "7706273476706534553", "blog": { "id": "2399953" }, "published": "2011-08-01T19:58:00.000Z", "updated": "2011-08-01T19:58:51.947Z", "url": "http://buzz.blogger.com/2011/08/latest-updates-august-1st.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553", "title": "Latest updates, August 1st", "content": "elided for readability", "author": { "id": "401465483996", "displayName": "Brett Wiltshire", "url": "http://www.blogger.com/profile/01430672582309320414", "image": { "url": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png" } }, "replies": { "totalItems": "0", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553/comments" } }
Làm việc với bình luận
Truy xuất bình luận cho một bài đăng
Bạn có thể truy xuất danh sách Bình luận cho một Bài đăng bằng cách gửi yêu cầu GET
đến URI Bộ sưu tập bình luận. URI cho Bộ sưu tập bình luận có định dạng như sau:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Bình luận từ một Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và danh sách nhận xét:
200 OK { "kind": "blogger#commentList", "nextPageToken": "CgkIFBDwjvDXlyYQ0b2SARj9mZe9n8KsnlQ", "prevPageToken": "CgkIFBisvMGRlyYQ0b2SARj9mZe9n8KsnlQ", "items": [ { "kind": "blogger#comment", "id": "9200761938824362519", "post": { "id": "6069922188027612413" }, "blog": { "id": "2399953" }, "published": "2011-07-28T19:19:57.740Z", "updated": "2011-07-28T21:29:42.015Z", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519", "content": "elided", "author": { "id": "530579030283", "displayName": "elided", "url": "elided", "image": { "url": "elided" } } }, { "kind": "blogger#comment", "id": "400101178920857170", elided for readability } ] }
Truy xuất một bình luận cụ thể
Bạn có thể truy xuất một Bình luận cụ thể từ một Bài đăng bằng cách gửi yêu cầu GET
đến URI tài nguyên Bình luận. URI cho Tài nguyên nhận xét có định dạng như sau:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments/commentId
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Bình luận từ một Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và dữ liệu nhận xét:
200 OK { "kind": "blogger#comment", "id": "9200761938824362519", "post": { "id": "6069922188027612413" }, "blog": { "id": "2399953" }, "published": "2011-07-28T19:19:57.740Z", "updated": "2011-07-28T21:29:42.015Z", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519", "content": "elided", "author": { "id": "530579030283", "displayName": "elided", "url": "elided", "image": { "url": "elided" } } }
Làm việc với Trang
Truy xuất trang cho blog
Bạn có thể truy xuất danh sách Trang cho một Blog bằng cách gửi yêu cầu GET
đến URI Bộ sưu tập trang. URI cho một Tập hợp trang có định dạng như sau:
https://www.googleapis.com/blogger/v2/blogs/blogId/pages
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Trang từ một Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và danh sách Trang:
200 OK { "kind": "blogger#pageList", "items": [ { "kind": "blogger#page", "id": "273541696466681878", "blog": { "id": "4967929378133675647" }, "published": "2011-07-14T16:16:00.000Z", "updated": "2011-07-14T16:16:23.602Z", "url": "http://brettmorgan-test-blawg.blogspot.com/p/static-content.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878", "title": "Static Content", "content": "elided for readability", "author": { "id": "901569848744", "displayName": "brett", "url": "http://www.blogger.com/profile/16258312240222542576", "image": { "url": "https://resources.blogblog.com/img/b16-rounded.gif" } } } ] }
Truy xuất một trang cụ thể
Bạn có thể truy xuất một Trang cụ thể từ một Blog bằng cách gửi yêu cầu GET
đến URI tài nguyên Trang. URI cho Tài nguyên trang có định dạng sau:
https://www.googleapis.com/blogger/v2/blogs/blogId/pages/pageId
Yêu cầu
Dưới đây là ví dụ:
GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878&key=YOUR-API-KEY
Vì người dùng không cần được xác thực để truy xuất Trang từ một Blog công khai, nên bạn không cần cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
này; nhưng nếu không cung cấp tiêu đề đó, thì bạn cần cung cấp khoá API.
Blogger cũng có các Blog riêng tư, yêu cầu xác thực.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và dữ liệu trang:
200 OK { "kind": "blogger#page", "id": "273541696466681878", "blog": { "id": "4967929378133675647" }, "published": "2011-07-14T16:16:00.000Z", "updated": "2011-07-14T16:16:23.602Z", "url": "http://brettmorgan-test-blawg.blogspot.com/p/static-content.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878", "title": "Static Content", "content": "elided for readability", "author": { "id": "901569848744", "displayName": "brett", "url": "http://www.blogger.com/profile/16258312240222542576", "image": { "url": "https://resources.blogblog.com/img/b16-rounded.gif" } } }
Làm việc với người dùng
Truy xuất người dùng
Bạn có thể truy xuất thông tin của người dùng bằng cách gửi yêu cầu GET
HTTP đến URI tài nguyên người dùng:
https://www.googleapis.com/blogger/v2/users/userId
Yêu cầu
Sau đây là ví dụ về một yêu cầu GET
liệt kê các blog của người dùng:
GET https://www.googleapis.com/blogger/v2/users/self
Authorization: /* OAuth 2.0 token here */
Lưu ý: Người dùng phải được xác thực để liệt kê thông tin của chính họ, vì vậy, bạn phải cung cấp tiêu đề HTTP Authorization
với yêu cầu GET
.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 200 OK
và đường liên kết đến danh sách blog của người dùng:
200 OK { "kind": "blogger#user", "id": "901569848744", "selfLink": "https://www.googleapis.com/blogger/v2/users/901569848744", "blogs": { "selfLink": "https://www.googleapis.com/blogger/v2/users/901569848744/blogs" } }
Tham số truy vấn tiêu chuẩn
Bạn có thể sử dụng các tham số truy vấn sau đây với tất cả phương thức và tất cả tài nguyên trong API Blogger.
Các tham số truy vấn áp dụng cho tất cả các thao tác của API Blogger được ghi lại tại Tham số hệ thống.