개발자 가이드: JavaScript

Blogger Data API를 사용하면 클라이언트 애플리케이션이 Google Data API 피드 형식으로 Blogger 콘텐츠를 보고 업데이트할 수 있습니다.

클라이언트 애플리케이션에서 Blogger 데이터 API를 사용하여 새 블로그를 만들 수 있습니다. 기존 블로그 게시물을 수정하거나 삭제하고, 일치하는 블로그 게시물을 검색 확인할 수 있습니다

Blogger의 기능에 대한 배경 지식과 함께 Data API, 이 문서는 다음을 사용하여 기본 Data API 상호작용의 예를 제공합니다. 자바스크립트 클라이언트 라이브러리를 사용합니다. 이러한 주제에 대해 라이브러리에서 사용하는 기본 프로토콜에 대한 자세한 내용은 아래의 프로토콜 섹션을 참조하세요. 이 개발자 가이드를 참조하세요.

목차

잠재고객

이 문서는 JavaScript 클라이언트를 작성하려는 프로그래머를 위해 작성되었습니다. 애플리케이션입니다. Kubernetes 아키텍처의 기본적인 데이터 API 상호작용을 처리할 수 있습니다.

Blogger Data API 참조 정보는 프로토콜 참조 가이드를 확인하세요. 이 문서에서는 Google Data API 프로토콜의 일반적인 개념과 JavaScript 클라이언트 라이브러리에서 사용하는 데이터 모델 및 제어 흐름을 이해하고 있다고 가정합니다. 또한 JavaScript로 프로그래밍하는 방법을 알고 있다고 가정합니다.

자세한 내용은 JavaScript 클라이언트 라이브러리 API 참조

이 문서는 순서대로 읽을 수 있도록 설계되었습니다. 각 예는 이전 예를 바탕으로 빌드됩니다.

이용약관

귀하는 Google JavaScript 클라이언트 라이브러리 이용약관을 참조하시기 바랍니다.

지원되는 환경 정보

현재 브라우저의 웹페이지에서 실행되는 JavaScript 클라이언트 애플리케이션만 지원됩니다. 현재 지원되는 브라우저는 Firefox 1.5 이상입니다. Internet Explorer 6.0 이상

JavaScript 클라이언트 라이브러리는 서비스의 있습니다. JS 개발자 경험이 있는 경우 '하지만 동일 출처 정책은 어떻나요?'라고 생각할 수 있습니다. 자바스크립트 클라이언트 라이브러리를 사용하면 모든 도메인의 Google Data API 요청을 브라우저 보안 모델입니다.

시작하기

JavaScript 클라이언트 애플리케이션을 작성하려면 먼저 라이브러리를 가져오기 위한 설정을 해야 합니다.

Blogger 계정 만들기

테스트 목적으로 Blogger 계정을 등록하는 것이 좋습니다. Blogger는 Google 계정을 사용하므로 이미 Google 계정이 있다면 바로 시작할 수 있습니다.

라이브러리 획득

클라이언트가 클라이언트 라이브러리를 사용하려면 먼저 클라이언트 라이브러리 코드를 복사합니다.

먼저 HTML 문서의 <head> 섹션에서 <script> 태그를 사용하여 Google AJAX API 로더를 가져옵니다.

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

로더를 가져온 후 Google Data API 클라이언트 라이브러리를 획득하려면 다음을 사용합니다. 자바스크립트 설정 코드에 다음 줄을 추가합니다. 이 코드는 HTML 문서의 <head> 섹션 (또는 자바스크립트에서) <script> 태그를 사용하여 포함된 <head> 섹션).

google.load("gdata", "1.x");

google.load()의 두 번째 매개변수는 JavaScript 클라이언트 라이브러리의 요청된 버전 번호입니다.버전 번호 지정 체계 Google Maps API에서 사용되는 것을 모델로 합니다. 가능한 버전 번호와 그 의미는 다음과 같습니다.

"1"
메이저 버전 1의 마지막에서 두 번째 버전
"1.x"
메이저 버전 1의 최신 버전입니다.
"1.s"
주요 버전 1의 최신 안정화 버전입니다. 가끔 특정 버전의 클라이언트 라이브러리를 '안정적'이라고 선언할 때가 있습니다. Google은 개발자로부터 받은 피드백을 기반으로 합니다 그러나 해당 버전에 최신 지형지물이 없을 수 있습니다.
"1.0", "1.1' 등
지정된 메이저 및 마이너 버전 번호가 있는 라이브러리의 특정 버전입니다.

google.load()를 호출한 후에는 페이지 로드가 완료될 때까지 기다린 후 코드를 호출하도록 로더에 지시해야 합니다.

google.setOnLoadCallback(getMyBlogFeed);

여기서 getMyBlogFeed()는 이 문서의 뒷부분에서 정의할 함수입니다. 이 접근 방식을 사용하여 <body>에 연결된 onload 핸들러 요소가 포함됩니다.

Blogger 서비스에 인증

Blogger 데이터 API를 사용하여 공개 및 비공개 피드 모두에 액세스할 수 있습니다. 공개 피드에는 인증이 필요하지 않지만 읽기 전용입니다. 블로그를 수정하려면 클라이언트가 비공개 피드를 요청하기 전에 인증해야 합니다.

JavaScript 클라이언트 라이브러리는 AuthSub 인증 시스템을 사용합니다. 대상 Google 데이터 API를 사용한 인증에 대한 자세한 내용은 인증 문서를 참조하세요.

AuthSub 프록시 인증

AuthSub 프록시 인증은 Google 계정에 사용자를 인증해야 하는 웹 애플리케이션에서 사용됩니다. 웹사이트 운영자와 클라이언트 코드는 Blogger 사용자의 사용자 이름과 비밀번호에 액세스할 수 없습니다. 대신 클라이언트는 클라이언트가 특정 사용자를 대신하여 작업할 수 있는 특수한 AuthSub 토큰을 가져옵니다.

다음은 웹 기반 JavaScript 클라이언트의 인증 프로세스 중에 발생하는 상황을 간략하게 설명한 내용입니다.

  1. 클라이언트 애플리케이션은 클라이언트 라이브러리에서 제공하는 google.accounts.user.login() 메서드를 호출하여 사용할 Google 서비스를 나타내는 '범위' 값을 전달합니다. Blogger의 경우 "http://www.blogger.com/feeds/"
  2. 클라이언트 라이브러리는 브라우저를 Google의 '액세스 요청' 페이지로 전송합니다. 이 페이지에서 사용자는 사용자 인증 정보를 입력하여 서비스에 로그인할 수 있습니다.
  3. 사용자가 로그인하면 AuthSub 시스템은 브라우저를 웹 클라이언트의 URL로 다시 전송하여 인증 토큰을 전달합니다.
  4. JavaScript 클라이언트 라이브러리는 토큰을 쿠키에 저장하고 호출한 클라이언트 애플리케이션의 함수에 google.accounts.user.login()
  5. 이후 클라이언트 애플리케이션이 Blogger와 상호작용하는 클라이언트 라이브러리 메서드를 호출하면 클라이언트 라이브러리는 모든 요청에 토큰을 자동으로 연결합니다.

참고: JavaScript 클라이언트 라이브러리가 웹브라우저에서 인증된 Blogger 요청을 실행하려면 페이지에 페이지와 동일한 도메인에 호스팅된 이미지가 포함되어 있어야 합니다. 단일 픽셀 투명 이미지도 포함해 어떤 이미지든지 사용할 수 있지만 페이지에 이미지가 있어야 합니다. 이미지가 페이지에 표시되지 않도록 하려면 <img> 태그의 style 속성을 사용하여 이미지를 렌더링 영역 외부에 배치하면 됩니다. 예: style="position:absolute; top: -1000px;"

다음은 로그인을 처리하는 클라이언트 애플리케이션 코드입니다. 나중에 다른 코드에서 setupMyService() 함수를 호출합니다.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

: 사용자에게 로그인을 시작하라는 메시지를 표시하는 로그인 버튼 또는 기타 사용자 입력 메커니즘 수동으로 처리합니다 대신 로드 후 사용자 상호작용을 기다리지 않고 즉시 google.accounts.user.login()를 호출하면 사용자가 페이지에 도착했을 때 가장 먼저 Google 로그인 페이지가 표시됩니다. 사용자가 로그인하지 않기로 결정하면 Google은 페이지를 다시 방문하도록 유도하지 않습니다. 사용자의 관점에서 보면 페이지에 방문하려고 했지만 페이지가 나갔고 다시 돌아오지 않았습니다. 이 시나리오는 사용자에게 혼란과 불편을 줄 수 있습니다. 이 문서의 예시 코드에서 바로 google.accounts.user.login()에 전화를 겁니다. 예를 단순하게 유지하기 위해 로드를 사용하는 것이 좋지만, 실제 클라이언트 애플리케이션을 지원합니다.

이름이 지정된 변수는 token; 클라이언트 라이브러리는 토큰을 추적하므로 해야 합니다.

참고: 새 BloggerService를 만드는 경우 객체가 있으면 클라이언트 라이브러리는 google.gdata.client.init()는 브라우저가 지원됩니다 오류가 발생하면 클라이언트 라이브러리가 사용자에게 오류 메시지를 표시합니다. 이러한 유형의 오류를 직접 처리하려면 서비스를 만들기 전에 google.gdata.client.init(handleInitError)를 명시적으로 호출하면 됩니다. 여기서 handleInitError()는 함수입니다. init 오류가 발생하면 함수가 표준 오류 객체를 수신합니다. 원하는 대로 지정할 수 있습니다.

토큰은 google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

logout()를 호출하지 않으면 토큰은 사용자가 삭제하지 않는 한 2년 동안 지속됩니다. 쿠키는 사용자가 브라우저를 닫았다가 다시 열 수 있음 클라이언트로 돌아오면 로그인 상태를 유지할 수 있습니다.

그러나 세션 중에 토큰이 무효화될 수 있는 특정 비정상적인 상황이 있습니다. Blogger가 토큰을 거부하는 경우 클라이언트는 logout()를 호출하여 쿠키를 삭제하여 오류 조건 해결 그런 다음 login()를 다시 호출하여 유효한 새 토큰을 획득할 수 있습니다

다양한 상황에서 유용하게 사용할 수 있는 두 가지 다른 AuthSub 메서드가 있습니다. 컨텍스트:

  • google.accounts.user.checkLogin(scope)는 브라우저에 현재 지정된 범위에 대한 인증 토큰이 있는지 여부를 나타냅니다.
  • google.accounts.user.getInfo()는 디버깅용으로 현재 토큰에 관한 자세한 정보를 제공합니다.

토큰 관리, checkLogin()getInfo()에 관한 정보 등 JavaScript를 사용하여 AuthSub와 상호작용하는 방법에 관한 자세한 내용은 JavaScript 클라이언트 라이브러리에서 'AuthSub' 인증 사용 문서를 참고하세요.

맨 위로