중요: v2.0 JSON API 지원은 2024년 9월 30일에 중단됩니다. 기능을 계속 사용하려면 v2.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 키를 제공할 수도 있지만 그럴 필요는 없습니다.
- 요청에 승인이 필요하지 않은 경우 (예: 공개 데이터 요청) 애플리케이션은 API 키 또는 OAuth 2.0 토큰 중 하나 또는 둘 다를 편의에 따라 제공해야 합니다.
승인 프로토콜 정보
요청을 승인하려면 애플리케이션에서 OAuth 2.0을 사용해야 합니다. 다른 승인 프로토콜은 지원되지 않습니다.
참고: Blogger JSON API는 현재 데이터 액세스 요청 (하이브리드) 또는 도메인 전체 권한 위임 (2LO)과 동시에 로그인을 지원하지 않습니다.
OAuth 2.0으로 요청 승인하기
Blogger JSON API에 대한 비공개 사용자 데이터 요청은 인증된 사용자가 승인해야 합니다.
OAuth 2.0의 세부적인 승인 절차('흐름')는 제작 중인 애플리케이션 종류에 따라 약간씩 다릅니다. 다음의 일반적인 과정은 모든 애플리케이션 유형에 적용됩니다.
- 애플리케이션을 만들 때 Google에 등록합니다. 그러면 Google에서 클라이언트 ID 및 클라이언트 비밀번호와 같이 나중에 필요한 정보를 제공합니다.
- Google API 콘솔의 서비스 창에서 Blogger JSON API를 활성화합니다. (Console에 표시되지 않으면 이 단계를 건너뜁니다.)
- 애플리케이션에서 사용자 데이터에 액세스해야 하는 경우 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에 대한 공개 데이터 요청에는 API 키 또는 인증 토큰과 같은 식별자가 함께 제공되어야 합니다.
API 키를 획득하려면 API 콘솔을 방문하세요. 서비스 창에서 [api_name]을 활성화합니다. 서비스 약관이 표시되면 약관을 읽고 동의합니다.
그런 다음 API 액세스 창으로 이동합니다. API 키는 창 하단의 '간단한 API 액세스' 섹션에 있습니다.
API 키가 있으면 애플리케이션은 모든 요청 URL에 쿼리 매개변수 key=yourAPIKey
를 추가할 수 있습니다.
API 키는 URL에 포함하기에 안전합니다. 인코딩이 전혀 필요하지 않습니다.
블로그 관리하기
블로그 검색
블로그의 URI에 HTTP GET
요청을 전송하여 특정 블로그 리소스에 대한 정보를 가져올 수 있습니다. 블로그 리소스의 URI 형식은 다음과 같습니다.
https://www.googleapis.com/blogger/v2/blogs/blogId
요청
예를 들면 다음과 같습니다.
GET https://www.googleapis.com/blogger/v2/blogs/2399953&key=YOUR-API-KEY
사용자가 공개 블로그를 검색하기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 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": "" } }
사용자의 블로그 검색
블로그 모음 URI에 HTTP GET
요청을 전송하여 사용자의 블로그 목록을 가져올 수 있습니다.
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": "" } } ] }
게시물 작업
블로그에서 게시물 가져오기
Posts Collection URI에 GET
요청을 전송하여 특정 블로그의 게시물 목록을 검색할 수 있습니다. 게시물 모음의 URI 형식은 다음과 같습니다.
https://www.googleapis.com/blogger/v2/blogs/blogId/posts
요청
예를 들면 다음과 같습니다.
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts&key=YOUR-API-KEY
사용자가 공개 블로그에서 게시물을 가져오기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 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 } ] }
특정 게시물 검색
게시물 리소스 URI에 GET
요청을 전송하여 블로그에서 특정 게시물을 검색할 수 있습니다. 게시물 리소스의 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
사용자가 공개 블로그에서 게시물을 가져오기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 API 키를 제공해야 합니다.
Blogger에는 인증이 필요한 비공개 블로그도 있습니다.
응답
요청이 성공하면 서버는 HTTP 200 OK
상태 코드와 게시물의 콘텐츠를 응답으로 반환합니다.
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
사용자가 공개 블로그에서 댓글을 가져오기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 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 } ] }
특정 댓글 검색
Comments 리소스 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
사용자가 공개 블로그에서 댓글을 가져오기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 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
사용자가 공개 블로그에서 페이지를 가져오기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 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" } } } ] }
특정 페이지 검색
페이지 리소스 URI에 GET
요청을 전송하여 블로그에서 특정 페이지를 검색할 수 있습니다. 페이지 리소스의 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
사용자가 공개 블로그에서 페이지를 가져오기 위해 인증할 필요가 없으므로 이 GET
요청에 Authorization
HTTP 헤더를 제공할 필요가 없습니다. 하지만 이 헤더를 제공하지 않으면 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" } } }
사용자와 작업하기
사용자 검색
사용자 리소스 URI에 HTTP GET
요청을 전송하여 사용자 정보를 검색할 수 있습니다.
https://www.googleapis.com/blogger/v2/users/userId
요청
다음은 사용자의 블로그를 나열하는 GET
요청의 예입니다.
GET https://www.googleapis.com/blogger/v2/users/self
Authorization: /* OAuth 2.0 token here */
참고: 사용자가 자신의 정보를 나열하려면 인증을 받아야 하므로 GET
요청에 Authorization
HTTP 헤더를 제공해야 합니다.
응답
요청이 성공하면 서버는 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 작업에 적용되는 쿼리 매개변수는 시스템 매개변수에 설명되어 있습니다.