重要事項:我們將在 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 授權程序 (或「流程」) 的細節會根據您編寫的應用程式類型而有所不同。下列 一般程序適用於所有應用程式類型:
- 建立應用程式時,您必須向 Google 註冊。接著 Google 會向您提供稍後需要的資訊,例如用戶端 ID 和用戶端密碼。
- 在 Google API 的「服務」窗格中啟用 Blogger JSON API 控制台。(如果該 API 未列在控制台中,請略過這個步驟)。
- 當應用程式需要存取使用者資料時,會向 Google 要求特定的存取範圍。
- Google 會向使用者顯示 OAuth 對話方塊,請對方授權您的應用程式要求部分資料。
- 如果使用者同意,Google 即會授予短期存取權杖給您的應用程式。
- 您的應用程式向使用者要求資料,並且在要求中附上存取權杖。
- 如果 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 作業的查詢參數,請前往 系統參數: