자주 묻는 질문(FAQ)

    개요

  1. Google Data API란 무엇인가요?
  2. 기능 요청 또는 버그 신고가 있습니다. 어디에 게시해야 하나요?
  3. 특정 API에 관해 질문할 수 있는 위치는 어디인가요?
  4. JSON이란 무엇인가요?
  5. XML을 사용해야 하나요? 다른 데이터 형식도 사용할 수 있나요?
  6. REST를 사용하는 이유는 무엇인가요?
  7. 일반적인 문제에 대한 도움말이나 짧은 샘플 코드가 있나요?
  8. Gmail에 Data API가 있나요?
  9. 인증

  10. 각 Data API에 대한 ClientLogin의 서비스 이름은 무엇인가요?
  11. 사용자가 애플리케이션에서 로그아웃할 때 API 서버에 알려야 하나요?
  12. ClientLogin 인증 토큰에 만료일이 있나요?
  13. Google 계정에 관한 일반적인 질문이 있습니다. 어떻게 해야 하나요?
  14. API에 인증하려면 어떻게 해야 하나요?
  15. AuthSub/OAuth 1 범위 매개변수에 어떤 값을 사용해야 하나요?
  16. 다른 유형의 AuthSub 토큰도 있나요? 토큰이 만료되나요?
  17. ClientLogin과 AuthSub/OAuth 1의 주요 차이점은 무엇인가요?
  18. 타사 웹 애플리케이션에서 ClientLogin 인증을 사용할 수 있나요?
  19. 보안문자란 무엇인가요?
  20. 보안문자를 입력하려면 어떻게 해야 하나요?
  21. 웹 애플리케이션에서 ClientLogin을 사용해야 하나요?
  22. AuthSub/OAuth 1을 사용할 때 사용자의 사용자 이름을 찾으려면 어떻게 해야 하나요?
  23. Google Data API 클라이언트 라이브러리에서 OAuth 1을 사용하려면 어떻게 해야 하나요?
  24. Google Data API 클라이언트 라이브러리에 AuthSub를 사용하려면 어떻게 해야 하나요?
  25. Google Data API 클라이언트 라이브러리에서 ClientLogin을 사용하려면 어떻게 해야 하나요?
  26. 클라이언트 라이브러리

  27. Google에서 지원하는 클라이언트 라이브러리는 어떤 프로그래밍 언어인가요?
  28. Google 데이터 클라이언트 라이브러리 중 하나의 버그 또는 기능 요청을 신고하려면 어떻게 해야 하나요?
  29. 클라이언트 라이브러리에서 디버깅 옵션을 사용 설정하려면 어떻게 해야 하나요?
  30. 클라이언트 라이브러리 클래스의 참조 문서는 어디에서 찾을 수 있나요?
  31. 문제 해결

  32. HTTP 디버깅에 유용한 도구는 무엇인가요?
  33. 자바 클라이언트 라이브러리에서 HTTP 로깅 정보를 가져오려면 어떻게 해야 하나요?
  34. .NET 클라이언트 라이브러리에서 HTTP 로깅 정보를 가져오려면 어떻게 해야 하나요?
  35. Google 데이터 피드에서 gzip 인코딩을 사용 설정하려면 어떻게 해야 하나요?
  36. PHP 클라이언트를 사용할 때 'sslv2에 연결할 수 없음' 오류가 표시되는 이유는 무엇인가요?
  37. 피드를 설명하는 Atom 서비스 문서를 가져오려면 어떻게 해야 하나요?

개요

Google 데이터 API란 무엇인가요?

Google Data API는 Google 데이터 프로토콜을 기반으로 하는 API입니다. Google 데이터 프로토콜은 Atom 1.0RSS 2.0 신디케이션 형식과 Atom 게시 프로토콜(APP)을 기반으로 합니다.

Google 데이터 프로토콜은 표준에 내장된 확장 프로그램을 사용하여 이러한 표준을 다양한 방식으로 확장합니다. 피드는 Atom 또는 RSS 신디케이션 형식을 준수합니다. 게시 모델은 Atom 게시 프로토콜을 준수합니다.

또한 이 프로토콜은 피드, 검색어, 결과에 대한 일반적인 모델을 제공합니다. 이를 사용하여 모든 데이터 API에 쿼리와 업데이트를 보낼 수 있습니다.

기능 요청 또는 버그 신고가 있습니다. 어디에 게시해야 하나요?
Issue Tracker를 확인하세요. 기능 요청을 찾아 별표표시하여 지원을 추가하고 상태 업데이트를 받으세요.
특정 API에 대한 질문은 어디에서 해야 하나요?
여기에 나열되지 않은 문제이거나 추가 설명이 필요한 경우 각 Google Data API와 관련된 토론 그룹이 있습니다.
JSON이란 무엇인가요?

JSON은 자바스크립트 객체 표기법을 나타냅니다.

JSON은 간단한 데이터 교환 형식으로, 단순성이 웹 개발자들 사이에서 널리 사용되고 있습니다. 읽고 쓰는 것이 쉽습니다. 모든 프로그래밍 언어를 사용하여 파싱할 수 있으며, 구조는 대부분의 프로그래밍 언어에서 사용되는 데이터 구조에 직접 매핑됩니다.

Google Data API에서 JSON 사용에 대해 자세히 알아보세요.

XML을 사용해야 하나요? 다른 데이터 형식을 사용할 수 있나요?
Google Data API의 기본 데이터 형식은 Atom 피드 형식의 XML입니다. 하지만 피드를 요청할 때 alt 쿼리 매개변수를 사용하여 대체 형식을 지정할 수 있습니다.
  • alt=rss
    응답 데이터는 RSS 피드 형식으로 지정됩니다.
  • alt=json 또는 alt=json-in-script
    Atom 피드의 XML 구조를 JSON으로 표시하여 반환합니다. JSON의 추가적인 이점은 자바스크립트 클라이언트 코드에서 '파싱'하기가 더 쉽다는 것입니다. 현재 JSON은 읽기 전용 옵션으로만 사용할 수 있습니다. 그러나 Blogger, 주소록 또는 캘린더 서비스와 함께 자바스크립트 클라이언트 라이브러리를 사용하면 데이터를 읽고 쓸 수 있습니다.

    JSON 피드 요청 및 사용에 대해 자세히 알아보세요.

  • alt=atom-in-script
    alt=json-in-script와 유사하지만 JSON이 아닌 Atom XML 문자열로 결과가 반환됩니다.
  • alt=rss-in-script
    alt=atom-in-script과 유사하지만 Atom이 아닌 RSS XML 문자열로 결과가 반환됩니다.

Google 데이터 참조 가이드에서 대체 형식에 관해 자세히 알아보세요.

REST를 사용하는 이유는 무엇인가요?
REST는 간단하고 가볍고 확장 가능하며 데이터를 표현하고 노출하는 데 매우 적합합니다.
일반적인 문제에 대한 도움말이나 짧은 샘플 코드가 있나요?
Google Data API 도움말 블로그에서 클라이언트 라이브러리 및 원시 요청 생성 관련 도움말을 찾아볼 수 있습니다.
Gmail에 Data API가 있나요?

아니요. 하지만 Gmail의 Atom 피드AuthSub 또는 OAuth 1과 함께 사용하면 사용자의 읽지 않은 메시지에 대한 읽기 전용 액세스를 요청할 수 있습니다. 범위는 https://mail.google.com/mail/feed/atom/로 설정해야 합니다. 쿼리 예시는 다음과 같습니다.

GET https://mail.google.com/mail/feed/atom/

메일 관리는 Gmail에서 IMAP/POP로도 가능합니다.


인증

Google Data API 문서에서 'OAuth'는 OAuth 1을 나타냅니다. OAuth 2.0 세부정보는 개별 API 문서를 참고하세요.

각 Data API에 대한 ClientLogin의 서비스 이름은 무엇인가요?
'서비스 이름'은 ClientLogin 인증 시스템에서 Google 서비스를 식별하는 데 사용하는 짧은 문자열입니다.
Google API 서비스 이름
Google 애널리틱스 데이터 API analytics
G Suite API
(도메인 정보 및 관리)
apps
Google Sites 데이터 API jotspot
Blogger 데이터 API blogger
도서검색 데이터 API print
Calendar 데이터 API cl
Google 코드 검색 데이터 API codesearch
주소록 데이터 API cp
Content API for Shopping structuredcontent
문서 목록 데이터 API writely
재무 데이터 API finance
Gmail Atom 피드 mail
Health 데이터 API health
weaver (H9 샌드박스)
지도 데이터 API local
Picasa 웹앨범 데이터 API lh2
사이드위키 데이터 API annotateweb
스프레드시트 데이터 API wise
웹마스터 도구 API sitemaps
YouTube Data API youtube

ClientLogin 요청에 사용된 다른 매개변수에 대한 자세한 내용은 ClientLogin 문서를 참조하세요.

사용자가 애플리케이션에서 로그아웃할 때 API 서버에 알려야 하나요?
아니요. 사용자가 애플리케이션에서 로그아웃할 때 Google Data API에 알릴 필요는 없습니다. 하지만 애플리케이션에서 더 이상 발급된 AuthSub 토큰을 사용할 필요가 없다면 토큰을 취소해야 합니다.
ClientLogin 인증 토큰에 만료일이 있나요?
ClientLogin 토큰은 발행일로부터 2주 동안 지속될 수 있지만 이 한도는 서비스별로 다르며 더 짧을 수 있습니다.
Google 계정에 관한 일반적인 질문이 있습니다. 어디로 가야 하나요?
Google 계정 고객센터를 방문하세요.
API에 인증하려면 어떻게 해야 하나요?
HTTP 요청에는 ClientLogin, AuthSub 또는 OAuth 1을 사용하여 획득한 토큰이 포함된 승인 헤더가 포함되어야 합니다.
AuthSub/Oauth 1 범위 매개변수에 어떤 값을 사용해야 하나요?
애플리케이션에 액세스할 Google 서비스를 식별하려면 AuthSub 및 OAuth 1에서 scope 매개변수가 필요합니다. OAuth 2.0 세부정보는 해당 API의 문서를 참조하세요.

Google API ClientLogin 서비스 이름
Google Analytics Data API https://www.google.com/analytics/feeds/
Google Sites 데이터 API http(s)://sites.google.com/feeds/
Blogger 데이터 API http://www.blogger.com/feeds/
도서검색 데이터 API http://www.google.com/books/feeds/
Calendar 데이터 API http(s)://www.google.com/calendar/feeds/
주소록 데이터 API http(s)://www.google.com/m8/feeds/
Content API for Shopping https://www.googleapis.com/auth/structuredcontent
문서 목록 데이터 API http(s)://docs.google.com/feeds/
재무 데이터 API http://finance.google.com/finance/feeds/
Gmail Atom 피드 https://mail.google.com/mail/feed/atom/
Health 데이터 API https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/(H9 샌드박스)
Maps Data API http://maps.google.com/maps/feeds/
Picasa 웹앨범 데이터 API http://picasaweb.google.com/data/
이동식 주소록 API http://www-opensocial.googleusercontent.com/api/people
사이드위키 데이터 API http://www.google.com/sidewiki/feeds/
스프레드시트 데이터 API http(s)://spreadsheets.google.com/feeds/
웹마스터 도구 API http://www.google.com/webmasters/tools/feeds/
YouTube Data API http://gdata.youtube.com
다른 유형의 AuthSub 토큰도 있나요? 토큰이 만료되나요?
AuthSub 토큰에는 두 가지 유형이 있습니다. 첫 번째는 'token' 쿼리 매개변수를 통해 웹 애플리케이션에 표시되는 일회용 토큰입니다. 이 토큰은 토큰이 발행된 서비스에 처음 사용되거나 세션 토큰으로 교환될 때 만료됩니다.

토큰이 사용자 또는 AuthSubRevokeToken API 호출을 통해 명시적으로 취소되지 않는 한 세션 토큰이 만료되지 않습니다. 일회용 토큰은 원래 AuthSubRequest URL이 session=1를 쿼리 매개변수로 지정한 경우에만 세션 토큰으로 교환할 수 있습니다.
ClientLogin과 AuthSub/OAuth 1의 주요 차이점은 무엇인가요?

AuthSub는 웹 애플리케이션용으로 설계되었습니다. 사용자 인증 정보를 사용자 웹브라우저에서 서드 파티 웹사이트를 통하지 않고 Google 서버로 안전하게 직접 전송할 수 있습니다.

ClientLogin은 설치된 데스크톱 애플리케이션용입니다. 이 기능을 사용하려면 요청하는 애플리케이션이 사용자 대신 Google에 사용자 인증 정보를 전송해야 합니다.

Google Account Authentication API 문서를 참고하세요.

타사 웹 애플리케이션에서 ClientLogin 인증을 사용할 수 있나요?
타사 웹 애플리케이션에서 ClientLogin을 사용하는 것은 허용되지만 사용하지 않는 것이 좋습니다. 웹 애플리케이션에서 사용자에게 로그인 사용자 인증 정보를 요청하지 않는 것이 좋습니다 (스누핑에 취약할 수 있음). 대신 애플리케이션은 사용자 인증 정보를 서버 측에 저장하고 항상 Google 인증에 사용되는 단일 '서비스 계정'을 제공해야 합니다.
보안문자란 무엇인가요?
보안문자 (컴퓨터와 인간을 구분하는 완전히 자동화된 공개 Turing 테스트)는 사용자가 사람인지 확인하는 데 사용되는 보안 질문 응답 테스트 유형입니다. 이 상표는 카네기멜론대학의 상표입니다. 자세한 내용은 Wikipedia를 참고하세요. ClientLogin에 보안문자를 구현했습니다.
보안문자 보안문자를 생성하려면 어떻게 해야 하나요?
독점 알고리즘을 사용하여 인증 중에 보안문자 질문이 필요한지 판단합니다. 사용자 인증 정보가 잘못된 인증 시도를 반복하면 보안문자 문제가 종종 발생합니다.
웹 애플리케이션에서 ClientLogin을 사용해야 하나요?
아니요. 사용자 소유 하드웨어에 설치된 애플리케이션에서 ClientLogin을 사용해야 합니다. 웹 애플리케이션에서 ClientLogin API를 사용하는 것은 안전하지 않으므로 사용하지 않는 것이 좋습니다.
AuthSub/OAuth 1을 사용할 때 사용자의 사용자 이름을 찾으려면 어떻게 해야 하나요?
사용자의 피드에 대한 액세스 권한을 부여하는 Google 토큰만 받기 때문에 사용자 이름이 무엇인지 모를 수 있습니다. 사용하려는 피드 URL에 사용자 이름이 포함되어 있으면 문제가 발생할 수 있습니다. 이 경우 특수 사용자 이름 default를 사용하여 '인증 토큰을 사용 중인 사용자'를 의미할 수 있습니다.
Google Data API 클라이언트 라이브러리에서 OAuth 1을 사용하려면 어떻게 해야 하나요?
Google Data API 클라이언트 라이브러리에 OAuth 1 사용 문서를 참조하세요.
Google Data API 클라이언트 라이브러리에서 AuthSub를 사용하려면 어떻게 해야 하나요?
Google Data API 클라이언트 라이브러리에 AuthSub 사용 문서를 참조하세요.
Google Data API 클라이언트 라이브러리에서 ClientLogin을 사용하려면 어떻게 해야 하나요?
Google Data API 클라이언트 라이브러리에 ClientLogin 사용 문서를 참조하세요.

클라이언트 라이브러리

Google에서 클라이언트 라이브러리를 지원하는 프로그래밍 언어는 무엇인가요?

Google은 자바, .NET, Python, Objective-C 클라이언트 라이브러리를 공식적으로 지원합니다. 또한 Google 파트너인 Zend는 PHP 클라이언트 라이브러리를 작성했습니다. 이러한 라이브러리를 사용하면 Google 데이터 프로토콜 요청을 구성하여 서비스로 전송하고 서버 응답을 처리할 수 있습니다. 현재 Blogger, 캘린더, Google 주소록만 지원하는 자바스크립트 클라이언트 라이브러리도 있습니다.

자바, .Net, Python 또는 Objective-C 이외의 언어로 클라이언트 라이브러리를 작성하며 Data API 개발자 커뮤니티와 공유하려면 Google Data API 토론 그룹에 게시하세요. 여러분의 많은 의견을 기다리겠습니다.

클라이언트 라이브러리 중 하나의 버그 또는 기능 요청을 신고하려면 어떻게 해야 하나요?

클라이언트 라이브러리의 버그 또는 기능 요청은 다음 위치에서 보고될 수 있습니다.

버그를 게시한 후 적절한 API를 위한 개발자 포럼에서 대화목록을 만듭니다.

Google Data API 클라이언트 라이브러리에서 디버깅 옵션을 사용 설정하려면 어떻게 해야 하나요?
일부 클라이언트 라이브러리를 사용한 디버깅 사용 설정 방법에 관한 자세한 내용은 Google Data API 클라이언트 디버깅: 프로그램 내 트래픽 탐색을 참고하세요.
클라이언트 라이브러리 클래스의 참조 문서는 어디에서 찾을 수 있나요?
클라이언트 라이브러리 참조 가이드
자바 Javadoc
자바스크립트 JSdoc
.NET NDoc
PHP phpDoc의 필드
Python PyDoc

문제 해결

HTTP 디버깅에 유용한 도구는 무엇인가요?

아래에는 여러 도구가 있지만, WireShark와 Fiddler의 자세한 예를 설명하는 Wire On: API 개발자용 네트워크 캡처 도구 자료를 읽어보는 것도 좋습니다.

와이어샤크
Wireshark는 '네트워크 프로토콜 분석기'입니다. 네트워크 트래픽을 캡처하고 콘텐츠를 분석하는 기능을 제공합니다. HTTP 요청 및 응답 스트림에 직접 액세스할 수 없는 라이브러리에서 발생하는 트래픽을 디버깅하는 데 매우 유용합니다. 통신이 SSL을 사용하여 암호화되므로 Wireshark를 사용하면 애플리케이션과 인증 서비스 간의 트래픽을 분석할 수 없습니다. 또한 tcpdump와 같은 도구를 사용하여 캡처한 트래픽을 분석하는 데 Wireshark를 사용할 수도 있습니다. Wireshark는 소스 코드 및 Windows 설치 프로그램 모두 개발자가 사용할 수 있습니다. 서드 파티 패키지는 여러 플랫폼에서 사용할 수 있습니다.
Fiddler
Fiddler는 'HTTP 디버깅 프록시'입니다. HTTP 트래픽에 프록시 서버를 사용하도록 코드 또는 런타임 환경을 구성할 경우 Fiddler가 애플리케이션과 Google 데이터 서비스 사이에 위치하여 트래픽을 검사할 수 있습니다. Fiddler 2에는 SSL 지원이 포함되어 있습니다. Fiddler는 현재 Windows에서만 사용할 수 있습니다.
cURL
cURL은 HTTP/HTTPS 요청을 수행할 수 있는 명령줄 도구입니다. 먼저 클라이언트에서 HTTP 지원을 빌드하지 않고도 서비스와의 상호작용을 빠르게 테스트하는 데 매우 유용합니다.
자바 클라이언트 라이브러리에서 HTTP 로깅 정보를 가져오려면 어떻게 해야 하나요?

자바 클라이언트 라이브러리는 java.util.logging 패키지를 사용하여 HTTP 요청 로깅을 사용 설정합니다. 이렇게 하면 요청 및 응답, 상태 코드, 요청 URL의 헤더 로깅을 사용 설정할 수 있습니다. 현재 전체 요청 및 응답 스트림은 로깅되지 않습니다. 이러한 로그에 사용되는 로거 이름은 com.google.gdata.client.http.HttpGDataRequest입니다.

서버에서 오류 코드가 반환되면 예외가 발생합니다. 예외 클래스는 com.google.gdata.util.ServiceException에서 상속되며 getResponseBody()라는 공개 메서드를 포함합니다. 자세한 내용은 Javadoc을 참고하세요.

.NET 클라이언트 라이브러리에서 HTTP 로깅 정보를 가져오려면 어떻게 해야 하나요?
.NET 라이브러리는 System.Diagnostics 추적 메서드를 사용하여 트레이스가 사용 설정된 경우 실행 경로를 로깅합니다. 또한 오류가 발생하면 GDataRequestException이 발생합니다. 예외에는 HTTP 응답의 본문에 액세스할 수 있는 ResponseString가 포함됩니다.
Google 데이터 피드에서 gzip 인코딩을 사용 설정하려면 어떻게 해야 하나요?

Google 데이터 API 중 하나에서 gzip으로 인코딩된 응답을 받으려면 두 가지 작업을 수행해야 합니다. '수락-인코딩' 헤더를 설정하고 'gzip' 문자열을 포함하도록 사용자 에이전트를 수정합니다. 올바르게 구성된 헤더의 예는 다음과 같습니다.

User-Agent: my program (gzip)
Accept-Encoding: gzip
PHP 클라이언트를 사용할 때 'sslv2에 연결할 수 없음' 오류가 표시되는 이유는 무엇인가요?

Google은 2009년 7월부터 보안 강화를 위한 예방 조치로 서버에서 SSLv2를 사용 중지하기 시작했습니다. 죄송합니다. 2007년 7월 이전에 출시된 PHP 클라이언트 라이브러리 초기 버전 (버전 1.0.0 이하)에서 연결이 SSLv2를 사용하도록 하는 버그가 있습니다. SSLv2가 사용 중지된 서버에 연결하면 다음 오류가 발생합니다.

PHP Fatal error:  Uncaught exception 'Zend_Http_Client_Adapter_Exception' with message 'Unable to Connect to sslv2://www.google.com:443.'

이 오류를 수정하려면 PHP 클라이언트 라이브러리의 최신 버전으로 업그레이드하세요. http://framework.zend.com/download에서 다운로드할 수 있습니다.

최신 버전으로 업그레이드할 수 없는 경우 다음 코드를 애플리케이션에 추가하여 수정할 수 있습니다. 여기서 $gdataZend_Gdata(또는 적절한 서브클래스)의 기존 인스턴스입니다.

$gdata->getHttpClient()->setConfig(array('ssltransport' => 'ssl'));
피드를 설명하는 Atom 서비스 문서를 가져오려면 어떻게 해야 하나요?

요청에 alt=atom-service 매개변수를 전달하여 Atom 서비스 문서를 가져올 수 있습니다. 참고: Google Data API 버전 2만 AtomPub 서비스 문서 구문을 준수하는 서비스 문서를 반환합니다. Google Data API의 버전 1은 여전히 서비스 문서를 반환하지만 이전 AtomPub 초안 사양을 기반으로 합니다(두 버전 사이에 구문 및 네임스페이스 변경사항이 있음).