Java에서 Google API에 쉽게 액세스

자바용 Google API 클라이언트 라이브러리는 모든 Google API에 공통적인 기능(예: HTTP 전송, 오류 처리, 인증, JSON 파싱, 미디어 다운로드/업로드, 일괄 처리)을 제공합니다. 라이브러리에는 일관된 인터페이스를 갖춘 강력한 OAuth 2.0 라이브러리, 모든 데이터 스키마를 지원하는 가볍고 효율적인 XML 및 JSON 데이터 모델, 프로토콜 버퍼가 지원됩니다.
자바용 Google 클라이언트 클라이언트를 사용하여 Google API를 호출하려면 액세스하는 Google API에 생성된 자바 라이브러리가 필요합니다. 생성된 라이브러리에는 핵심 google-api-java-client 라이브러리와 함께 루트 URL과 같은 API 관련 정보가 포함됩니다. 또한 API 컨텍스트에서 항목을 나타내고 JSON 객체와 자바 객체 간에 변환하는 데 유용한 클래스도 포함됩니다.
자바용 Google 클라이언트 클라이언트를 사용하여 Google API를 호출하려면 액세스하는 Google API에 생성된 자바 라이브러리가 필요합니다. 생성된 라이브러리에는 핵심 google-api-java-client 라이브러리와 함께 루트 URL과 같은 API 관련 정보가 포함됩니다. 또한 API 컨텍스트에서 항목을 나타내고 JSON 객체와 자바 객체 간에 변환하는 데 유용한 클래스도 포함됩니다.
Java용 Google API 클라이언트 라이브러리의 주요 사항
Google API를 호출하는 것은 간단합니다.
Java용 Google API 클라이언트 라이브러리와 함께 Google 서비스별로 생성된 라이브러리를 사용하여 Google API를 호출할 수 있습니다. Google API용으로 생성된 클라이언트 라이브러리를 찾으려면 지원되는 Google API 목록을 참고하세요. 다음은 Java용 Calendar API 클라이언트 라이브러리를 사용하여 Google Calendar API를 호출하는 예입니다.
// Show events on user's calendar.
View.header("Show Calendars");
CalendarList feed = client.calendarList().list().execute();
View.display(feed);
라이브러리를 사용하면 더 쉽게 일괄 처리 및 미디어 업로드/다운로드를 할 수 있습니다.
라이브러리는 일괄 처리, 미디어 업로드, 미디어 다운로드를 위한 도우미 클래스를 제공합니다.라이브러리를 사용하면 인증이 더 쉬워집니다.
이 라이브러리에는 OAuth 2.0을 처리하는 데 필요한 코드의 양을 줄일 수 있는 강력한 인증 라이브러리가 포함되어 있습니다. 몇 줄만으로도 충분한 경우도 있습니다. 예:
/** Authorizes the installed application to access user's protected data. */
private static Credential authorize() throws Exception {
// load client secrets
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(CalendarSample.class.getResourceAsStream("/client_secrets.json")));
// set up authorization code flow
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets,
Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory)
.build();
// authorize
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}
라이브러리는 Google App Engine에서 실행됩니다.
App Engine용 도우미를 사용하면 인증된 API 호출을 빠르게 처리할 수 있으며 코드를 토큰으로 교환하는 데 대해 걱정할 필요가 없습니다.
예:
예:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
AppIdentityCredential credential =
new AppIdentityCredential(Arrays.asList(UrlshortenerScopes.URLSHORTENER));
Urlshortener shortener =
new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential)
.build();
UrlHistory history = shortener.URL().list().execute();
...
}
라이브러리는 Android 4.4 이상에서 실행됩니다.
Java용 Google 클라이언트 라이브러리의 Android용 도우미 클래스는 Android AccountManager와 잘 통합되어 있습니다. 예를 들면 다음과 같습니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Google Accounts
credential =
GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));
SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
// Tasks client
service =
new com.google.api.services.tasks.Tasks.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("Google-TasksAndroidSample/1.0").build();
}
간단한 설치
생성된 라이브러리를 사용하지 않는 경우 다운로드 페이지에서 Java용 Google API 클라이언트 라이브러리의 바이너리를 직접 다운로드하거나 Maven 또는 Gradle을 사용할 수 있습니다. Maven을 사용하려면 pom.xml 파일에 다음 줄을 추가합니다.
Gradle을 사용하려면 build.gradle 파일에 다음 줄을 추가합니다.
Java용 Google API 클라이언트 라이브러리 설치 및 설정에 관한 자세한 내용은 다운로드 및 설정 안내를 참고하세요.
<project>
<dependencies>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.32.1</version>
</dependency>
</dependencies>
</project>
Gradle을 사용하려면 build.gradle 파일에 다음 줄을 추가합니다.
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.api-client:google-api-client:1.32.1'
}
지원되는 환경
Java용 Google API 클라이언트 라이브러리는 다음과 같은 Java 환경을 지원합니다.
- 자바 7 이상, 표준 (SE), 엔터프라이즈 (EE)
- Google App Engine
- Android 4.4 이상 — 필요한 Google 서비스에서 Google Play 서비스 라이브러리를 사용할 수 있는 경우 이 라이브러리 대신 해당 라이브러리를 사용하세요. Google Play 라이브러리는 최상의 성능과 환경을 제공합니다.