Blogger JSON API:使用 API

重要事項:我們將在 2024 年 9 月 30 日停止支援 JSON API 2.0 版。為了確保應用程式能持續運作,請更新採用 2.0 JSON API 的應用程式 最新 API 版本。如要取得最新版本,請使用左側導覽列中的連結。

本文說明如何使用 RESTful 呼叫樣式的 Blogger JSON API 常用功能。

目錄

簡介

本文件可協助開發人員編寫具有下列特性的應用程式: 就能與 Blogger JSON API 互動Blogger 這項工具 架設網站,讓人們持續發表自己的想法 。

如果您不熟悉 Blogger 的概念,請先參閱入門指南,然後再開始編寫程式碼。

授權要求和識別應用程式

您的應用程式傳送至 Blogger JSON API 的每個要求都需要 向 Google 識別您的應用程式有兩種方法可以識別您的應用程式:使用 OAuth 2.0 憑證 (也用來授權要求) 和/或使用應用程式的 API 金鑰。以下說明如何判斷 而是使用:

  • 如果要求需要經過授權 (例如要求個人的私人資料),則應用程式必須為此要求提供 OAuth 2.0 憑證。應用程式也可以提供 API 金鑰,但並非必要。
  • 如果要求不需要經過授權 (例如要求公開資料),則應用程式必須為此要求提供 OAuth 2.0 憑證及/或 API 金鑰,視何種方式對您來說比較方便而定。

關於授權通訊協定

您的應用程式必須使用 OAuth 2.0 對要求進行授權,系統不支援其他授權通訊協定。

注意:Blogger JSON API 目前不支援在要求資料存取權 (混合式) 或全網域授權委派 (2LO) 時登入。

使用 OAuth 2.0 對要求進行授權

向 Blogger JSON API 傳送非公開使用者資料的要求必須獲得授權 驗證使用者

OAuth 2.0 授權程序 (或「流程」) 的細節會根據您編寫的應用程式類型而有所不同。下列 一般程序適用於所有應用程式類型:

  1. 建立應用程式時,您必須向 Google 註冊。接著 Google 會向您提供稍後需要的資訊,例如用戶端 ID 和用戶端密碼。
  2. 在 Google API 的「服務」窗格中啟用 Blogger JSON API 控制台。(如果該 API 未列在控制台中,請略過這個步驟)。
  3. 當應用程式需要存取使用者資料時,會向 Google 要求特定的存取範圍
  4. Google 會向使用者顯示 OAuth 對話方塊,請對方授權您的應用程式要求部分資料。
  5. 如果使用者同意,Google 即會授予短期存取權杖給您的應用程式。
  6. 您的應用程式向使用者要求資料,並且在要求中附上存取權杖。
  7. 如果 Google 判定您的要求與權杖有效, 要求的資料

部分流程包含額外步驟,例如使用重新整理 權杖來獲取新的存取權杖。如要進一步瞭解各類應用程式的流程,請參閱 Google 的 OAuth 2.0 說明文件

以下列出 Blogger JSON API 的 OAuth 2.0 範圍資訊:

https://www.googleapis.com/auth/blogger

如要透過 OAuth 2.0 要求存取權,您的應用程式需要範圍資訊,以及 Google 在應用程式註冊期間提供的資訊 (例如用戶端 ID 和/或用戶端密碼)。

提示:Google API 用戶端程式庫可以為您處理部分授權程序,且適用於多種程式設計語言;詳情請參閱程式庫和範例頁面

取得並使用 API 金鑰

向 Blogger JSON API 提出公開資料的要求時,必須一併附上 ID,可以是 API 金鑰或驗證權杖。

如要取得 API 金鑰,請前往 API 控制台。在「服務」窗格中啟用 [api_name]。如果畫面顯示《服務條款》,請詳閱並接受條款。

接著,前往「API 存取權」窗格。API 金鑰靠近該窗格底部的 稱為「Simple API Access」

取得 API 金鑰後,您的應用程式可以將查詢參數 key=yourAPIKey 附加到所有要求網址。

API 金鑰可以安全地嵌入網址中,不需任何編碼。

使用網誌

擷取網誌

您可以傳送 HTTP 對網誌 URI 發出 GET 要求。部落格資源的 URI 格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/2399953&key=YOUR-API-KEY

因為使用者不必經過驗證就能擷取公開網誌, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也擁有私人網誌 驗證。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼和網誌資料:

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": ""
  }
}

擷取使用者的網誌

如要擷取使用者的網誌清單,請傳送 HTTP GET 要求 至網誌集合 URI:

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

要求

以下舉例說明如何GET列出 使用者的網誌:

GET https://www.googleapis.com/blogger/v2/users/self/blogs
Authorization: /* OAuth 2.0 token here */

注意:使用者必須經過驗證,才能列出自己的網誌,因此您必須透過 GET 要求提供 Authorization HTTP 標頭。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼,以及使用者網誌清單的完整表示法:

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": ""
      }
    }
  ]
}

使用訊息

從網誌擷取文章

您可以將 GET 要求傳送至 Posts Collection URI,從特定網誌中擷取 Posts 清單。貼文的 URI 集合格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId/posts

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts&key=YOUR-API-KEY

使用者不需經過驗證就能擷取公開網誌的文章, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也擁有私人網誌 驗證。

回應

如果要求成功,伺服器會回應 HTTP 200 OK 狀態碼和貼文清單:

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
    }
  ]
}

擷取特定貼文

如要擷取特定網誌的文章,請將 GET 要求傳送至 Posts 資源 URI。貼文的 URI 資源格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553&key=YOUR-API-KEY

使用者不需經過驗證就能擷取公開網誌的文章, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也擁有私人網誌 驗證。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼和 Post 的內容:

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"
  }
}

使用註解

擷取貼文的留言

如要擷取留言的留言清單,請傳送 對註解集合 URI 發出的 GET 要求。留言集合 URI 的格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments&key=YOUR-API-KEY

使用者不需經過驗證即可擷取公開網誌的留言, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也有私人網誌,需要驗證才能存取。

回應

如果要求成功,伺服器會回應 HTTP 200 OK 狀態碼和註解清單:

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
    }
  ]
}

擷取特定留言

如要擷取特定留言中的留言,請傳送 對註解資源 URI 提出 GET 要求。評論資源的 URI 格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments/commentId

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519&key=YOUR-API-KEY

使用者不需經過驗證即可擷取公開網誌的留言, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也有私人網誌,需要驗證才能存取。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼和註解資料:

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"
    }
  }
}

使用網頁

擷取網誌網頁

您可以傳送 對網頁集合 URI 發出的 GET 要求。網頁集合的 URI 格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId/pages

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages&key=YOUR-API-KEY

使用者不需經過驗證就能擷取公開網誌中的網頁, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也有私人網誌,需要驗證才能存取。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼和網頁清單:

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"
        }
      }
    }
  ]
}

擷取特定網頁

您可以將 GET 要求傳送至網頁資源 URI,從網誌中擷取特定網頁。Pages 資源的 URI 格式如下:

https://www.googleapis.com/blogger/v2/blogs/blogId/pages/pageId

要求

範例如下:

GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878&key=YOUR-API-KEY

使用者不需經過驗證就能擷取公開網誌中的網頁, 無需提供包含此屬性的 Authorization HTTP 標頭 GET 要求;但如果沒有提供該標頭,你就需要提供 API 金鑰。

Blogger 也有私人網誌,需要驗證才能存取。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼和網頁資料:

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"
    }
  }
}

與使用者合作

擷取使用者

您可以將 HTTP GET 要求傳送至使用者資源 URI,藉此擷取使用者資訊:

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

要求

以下是列出使用者網誌的 GET 要求範例:

GET https://www.googleapis.com/blogger/v2/users/self
Authorization: /* OAuth 2.0 token here */

注意:使用者必須通過驗證, 列出自己的資訊,因此您必須提供 Authorization HTTP 標頭搭配 GET 要求。

回應

如果要求成功,伺服器會傳回 HTTP 200 OK 狀態碼,以及連結至使用者網誌清單的連結:

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"
  }
}

標準查詢參數

下列查詢參數可與 Blogger API 中的所有方法和資源搭配使用。

如需適用於所有 Blogger API 作業的查詢參數,請前往 系統參數