Blogger JSON API: API 사용

중요: 2024년 9월 30일부터 v2.0 JSON API에 대한 지원이 중단됩니다. 기능을 계속 사용하려면 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의 자세한 승인 과정 또는 '흐름'은 개발 중인 애플리케이션의 종류에 따라 약간 다릅니다. 다음과 같은 일반적인 프로세스는 모든 애플리케이션 유형에 적용됩니다.

  1. 애플리케이션을 만들 때 Google에 애플리케이션을 등록합니다. 그러면 Google에서 클라이언트 ID 및 클라이언트 보안 비밀번호와 같이 나중에 필요한 정보를 제공합니다.
  2. Google API 콘솔의 서비스 창에서 Blogger JSON 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에 대한 공개 데이터 요청에는 식별자가 함께 제공되어야 합니다. 식별자는 API 키 또는 인증 토큰일 수 있습니다.

API 키를 가져오려면 API 콘솔을 방문하세요. 서비스 창에서 [api_name]을 활성화합니다. 서비스 약관이 표시되면 읽고 동의합니다.

그런 다음 API 액세스 창으로 이동합니다. API 키는 창 하단 근처에 있는 '간단한 API 액세스' 섹션에 있습니다.

API 키가 있으면 애플리케이션은 모든 요청 URL에 쿼리 매개변수 key=yourAPIKey을 추가할 수 있습니다.

API 키는 URL에 포함하기에 안전합니다. 인코딩이 전혀 필요하지 않습니다.

블로그 관리하기

블로그 가져오기

블로그의 URI에 HTTP GET 요청을 전송하여 특정 Blogs 리소스에 대한 정보를 검색할 수 있습니다. 블로그 리소스의 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": ""
      }
    }
  ]
}

게시물 사용하기

블로그에서 게시물 가져오기

게시물 컬렉션 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 상태 코드와 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

공개 블로그에서 댓글을 검색하기 위해 사용자가 인증을 받지 않아도 되므로 이 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
    }
  ]
}

특정 댓글 검색

댓글 리소스 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 작업에 적용되는 쿼리 매개변수는 시스템 매개변수에 설명되어 있습니다.