Przewodniki szybkiego startu wyjaśniają, jak skonfigurować i uruchamiać aplikację, która wywołuje interfejs Google Workspace API.
Szybkie starty Google Workspace korzystają z bibliotek klienta interfejsu API do obsługi niektórych szczegółów procesu uwierzytelniania i autoryzacji. Zalecamy używanie bibliotek klienta w przypadku własnych aplikacji. W tym krótkim wprowadzeniu użyjemy uproszczonego podejścia do uwierzytelniania, które jest odpowiednie dla środowiska testowego. W przypadku środowiska produkcyjnego zalecamy zapoznanie się z informacjami na temat uwierzytelniania i autoryzacji, zanim wybierzesz odpowiednie dla swojej aplikacji poświadczenia dostępu.
Utwórz aplikację w języku Java, która wysyła żądania do interfejsu Keep API.
Cele
- skonfigurować środowisko,
- Skonfiguruj próbkę.
- Uruchom przykład.
Wymagania wstępne
- Java w wersji 1.8 lub nowszej.
- Gradle w wersji 7.0 lub nowszej.
- projekt Google Cloud,
- Konto Google z włączoną aplikacją Google Keep.
Konfigurowanie środowiska
Aby rozpocząć krótkie wprowadzenie, skonfiguruj środowisko.
Włącz API
Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć w projekcie Google Cloud. W jednym projekcie Google Cloud możesz włączyć 1 lub więcej interfejsów API.W konsoli Google Cloud włącz interfejs Keep API.
Tworzenie konta usługi
Konto usługi to szczególne konto używane zwykle przez aplikację, a nie przez osobę. Konta usługi możesz używać do uzyskiwania dostępu do danych lub wykonywania działań przez konto robota albo do uzyskiwania dostępu do danych w imieniu użytkowników Google Workspace lub Cloud Identity. Więcej informacji znajdziesz w artykule Konta usługi.Google Cloud Console
- W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.
- Kliknij Utwórz konto usługi.
- Wpisz szczegóły konta usługi, a potem kliknij Utwórz i kontynuuj.
- Opcjonalnie: przypisz do konta usługi role, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie uprawnień do zasobów.
- Kliknij Dalej.
- Opcjonalnie: wpisz użytkowników lub grupy, które mogą zarządzać tym kontem usługi i wykonywać na nim działania. Więcej informacji znajdziesz w artykule Zarządzanie przejmowaniem tożsamości konta usługi.
- Kliknij Gotowe. Zanotuj adres e-mail konta usługi.
interfejs wiersza poleceń gcloud
- Utwórz konto usługi:
gcloud iam service-accounts create
SERVICE_ACCOUNT_NAME
\ --display-name="SERVICE_ACCOUNT_NAME
" - Opcjonalnie: przypisz do konta usługi role, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie uprawnień do zasobów.
Tworzenie danych logowania do konta usługi
Musisz uzyskać poświadczenia w postaci pary kluczy publiczno-prywatnej. Te poświadczenia są używane przez kod do autoryzowania działań konta usługi w aplikacji.- W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.
- Wybierz konto usługi.
- Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
- Wybierz Plik JSON, a następnie kliknij Utwórz.
Nowa para kluczy publicznych/prywatnych zostanie wygenerowana i pobrana na Twoje urządzenie jako nowy plik. Zapisz pobrany plik JSON jako
credentials.json
w swoim katalogu roboczym. Ten plik jest jedyną kopią tego klucza. Informacje o tym, jak bezpiecznie przechowywać klucz, znajdziesz w artykule Zarządzanie kluczami konta usługi. - Kliknij Zamknij.
Konfigurowanie przekazywania dostępu w całej domenie dla konta usługi
Aby wywoływać interfejsy API w imieniu użytkowników w organizacji Google Workspace, konto usługi musi uzyskać w konsoli administracyjnej Google Workspace upoważnienie do działania w całej domenie przez konto superadministratora. Więcej informacji znajdziesz w artykule Przekazywanie kontu usługi uprawnień do całej domeny.- W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.
- Wybierz konto usługi.
- Kliknij Pokaż ustawienia zaawansowane.
- W sekcji „Przekazywanie dostępu w całej domenie” znajdź „Identyfikator klienta” swojego konta usługi. Aby skopiować wartość identyfikatora klienta do schowka, kliknij Kopiuj .
Jeśli masz dostęp superadministratora do odpowiedniego konta Google Workspace, kliknij Wyświetl konsolę administracyjną Google Workspace, a następnie zaloguj się na konto superadministratora i wykonaj te czynności.
Jeśli nie masz dostępu superadministratora do odpowiedniego konta Google Workspace, skontaktuj się z superadministratorem tego konta i prześlij mu identyfikator klienta konta usługi oraz listę zakresów uprawnień OAuth, aby mógł wykonać te czynności w konsoli administracyjnej.
- W konsoli administracyjnej Google kliknij Menu > Bezpieczeństwo > Dostęp do danych i kontrola nad nimi > Dostęp do interfejsów API.
- Kliknij Zarządzaj przekazywaniem dostępu w całej domenie.
- Kliknij Dodaj domenę.
- W polu „Identyfikator klienta” wklej skopiowany wcześniej identyfikator klienta.
- W polu „Zakresy uprawnień OAuth” wpisz oddzieloną przecinkami listę zakresów wymaganych przez aplikację. Jest to ten sam zestaw zakresów, który został zdefiniowany podczas konfigurowania ekranu zgody OAuth.
- Kliknij Autoryzuj.
Przygotowanie obszaru roboczego
W katalogu roboczym utwórz nową strukturę projektu:
gradle init --type basic mkdir -p src/main/java src/main/resources
W katalogu
src/main/resources/
skopiuj pobrany wcześniej plikcredentials.json
.Otwórz domyślny plik
build.gradle
i zastąp jego zawartość tym kodem:apply plugin: 'java' apply plugin: 'application' mainClassName = 'KeepQuickstart' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = '1.0' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { implementation 'com.google.api-client:google-api-client:1.23.0' implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0' implementation 'com.google.apis:google-api-services-keep:v1-rev20210528-1.31.0' }
Konfigurowanie próbki
W katalogu
src/main/java/
utwórz nowy plik Java o nazwie odpowiadającej wartościmainClassName
w plikubuild.gradle
.W nowym pliku Java umieść ten kod:
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.keep.v1.Keep; import com.google.api.services.keep.v1.model.Note; import com.google.api.services.keep.v1.model.Section; import com.google.api.services.keep.v1.model.TextContent; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.GeneralSecurityException; import java.util.Collections; import java.util.List; public class KeepQuickstart { private static final String APPLICATION_NAME = "Google Keep API Java Quickstart"; private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); /** * Global instance of the scopes required by this quickstart. If modifying these scopes, delete * your previously saved tokens/ folder. */ private static final List<String> KEEP_SCOPES = Collections.singletonList("https://www.googleapis.com/auth/keep"); private static final String CREDENTIALS_FILE_PATH = "/credentials.json"; /** * Creates an authorized Credential object. * * @param HTTP_TRANSPORT The network HTTP Transport. * @return An authorized Credential object. * @throws IOException */ private static Credential getOAuthCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException { // Load client secrets. InputStream in = KeepQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH); if (in == null) { throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH); } GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); // Build flow and trigger user authorization request. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, KEEP_SCOPES) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File("tokens"))) .setAccessType("offline") .build(); LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { // Build a new authorized API client service. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Keep service = new Keep.Builder(HTTP_TRANSPORT, JSON_FACTORY, getOAuthCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); Section noteBody = new Section().setText(new TextContent().setText("Finish preparations by tomorrow!")); Note newNote = new Note().setTitle("Customer call next week").setBody(noteBody); // Creates a new text note. service.notes().create(newNote).execute(); } }
Uruchamianie przykładu
Uruchom przykład:
gradle run
-
Gdy uruchomisz próbkę po raz pierwszy, pojawi się prośba o autoryzację dostępu:
- Jeśli nie zalogowano się na konto Google, zaloguj się, gdy pojawi się taka prośba. Jeśli logujesz się na kilka kont, wybierz jedno konto, którego chcesz użyć do autoryzacji.
- Kliknij Accept (Zaakceptuj).
Twoja aplikacja w Javie działa i wywołuje interfejs Keep API.
Informacje autoryzacyjne są przechowywane w systemie plików, więc następnym razem, gdy uruchomisz przykładowy kod, nie pojawi się prośba o autoryzację.
Dalsze kroki
- Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją
- Dokumentacja na temat interfejsu Google Keep API
- Dokumentacja klienta interfejsów API Google do języka Java
- Dokumentacja Javadoc interfejsu Google Keep API