API JSON của Blogger: Sử dụng API

Lưu ý quan trọng: Chúng tôi sẽ ngừng hỗ trợ API JSON 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 API JSON 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.

Tài liệu này mô tả cách sử dụng các tính năng phổ biến của API JSON của Blogger bằng phương thức 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 API JSON của Blogger. Blogger là một công cụ để tạo trang web, cho phép mọi người xuất bản ý kiến của họ trên cơ sở 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.

Cấp phép cho yêu cầu và nhận dạng ứ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 cho Google. Có 2 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 uỷ quyền cho yêu cầu) và/hoặc sử dụng khoá API của ứng dụng. Dưới đâ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 cho phép (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 kèm theo yêu cầu đó. Ứng dụng cũng có thể cung cấp khoá API, nhưng không bắt buộc.
  • Nếu yêu cầu không cần được uỷ quyền (chẳng hạn như yêu cầu về 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 – tuỳ 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 để cho phép 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ợ đă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).

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

Các yêu cầu gửi đến 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 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. Kích hoạt API JSON của Blogger trong ngăn Dịch vụ trên Bảng điều khiển API của Google. (Nếu bạn không thấy bước này trong Console, hãy bỏ qua bước này.)
  3. 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ể.
  4. 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ọ.
  5. 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.
  6. Ứ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.
  7. 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 của 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ư 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.

Nhận và sử dụng khoá API

Các yêu cầu gửi dữ liệu công khai đến API JSON của Blogger phải đi kèm với 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 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 API Access (Quyền truy cập API). Khoá API nằm ở gần cuối ngăn đó, trong mục có tiêu đề "Simple API Access".

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ả các URL yêu cầu.

Khoá API an toàn để nhúng trong URL; không cần phương thức 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 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 phải được xác thực để truy xuất Blog công khai, nên bạn không phải 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 phải 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 HTTP GET đến URI bộ sưu tập blog:

https://www.googleapis.com/blogger/v2/users/userId/blogs

Yêu cầu

Dưới đây là ví dụ về yêu cầu GET liệt kê blog của một 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ê blog của chính 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à bản 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": ""
      }
    }
  ]
}

Cách dùng bài đăng

Truy xuất bài đăng từ blog

Bạn có thể truy xuất danh sách các Bài đăng từ một Blog nhất định bằng cách gửi yêu cầu GET đến URI của Bộ sưu tập bài đăng. URI cho Bộ sưu tập bài đăng có định dạng 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 phải được xác thực để truy xuất Bài đăng từ một Blog công khai, nên bạn không phải 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 phải 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 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 một Tài nguyên bài đăng có định dạng 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 phải được xác thực để truy xuất Bài đăng từ một Blog công khai, nên bạn không phải 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 phải 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"
  }
}

Xử lý nhận xét

Truy xuất bình luận cho bài đăng

Bạn có thể truy xuất danh sách Bình luận của một bài đăng bằng cách gửi yêu cầu GET đến URI thu thập bình luận. URI cho Tập hợp bình luận có định dạng 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 phải đượ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 phải 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 phải 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 nhận xét cụ thể

Bạn có thể truy xuất một Bình luận cụ thể trên 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 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 phải đượ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 phải 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 phải 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 thu thập trang. URI cho Bộ sưu tập trang có định dạng 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 phải được xác thực để truy xuất Trang từ Blog công khai, nên bạn không cần phải 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 phải 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 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 một 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 phải được xác thực để truy xuất Trang từ Blog công khai, nên bạn không cần phải 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 phải 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 HTTP GET đến URI tài nguyên của người dùng:

https://www.googleapis.com/blogger/v2/users/userId

Yêu cầu

Dưới đây là ví dụ về yêu cầu GET liệt kê blog của một 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 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à một đườ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 chuẩn

Bạn có thể dùng các tham số truy vấn sau đây với tất cả phương thức và tài nguyên trong API Blogger.

Bạn có thể xem những tham số truy vấn áp dụng cho tất cả hoạt động của API Blogger tại phần System Parameters (Tham số hệ thống).