Krótkie wprowadzenie wyjaśnia, jak skonfigurować i uruchomić aplikację, która wywołuje Interfejs Google Workspace API.
Krótkie wprowadzenie do Google Workspace wykorzystuje biblioteki klienta API do obsługi niektórych szczegóły procesu uwierzytelniania i autoryzacji. Zalecamy używasz bibliotek klienta we własnych aplikacjach. W tym krótkim wprowadzeniu użyto uproszczone metody uwierzytelniania odpowiednie do testowania dla środowiska. W środowisku produkcyjnym zalecamy zapoznanie się z uwierzytelnianie i autoryzacja przed wybór danych logowania odpowiednie dla Twojej aplikacji.
utworzyć aplikację wiersza poleceń w języku Java, która wysyła żądania do interfejsu Google Keep API;
Cele
- skonfigurować środowisko,
- Skonfiguruj sampel.
- Uruchom przykład.
Wymagania wstępne
- Java 1.8 lub nowsza.
- Gradle w wersji 7.0 lub nowszej.
- Projekt Google Cloud –
- konto Google z włączoną aplikacją Google Keep;
Konfigurowanie środowiska
Aby ukończyć to 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 Google Keep API.
Tworzenie konta usługi
Konto usługi to specjalne konto używane przez aplikację, a nie niż człowiek. Konta usługi możesz używać do uzyskiwania dostępu do danych i wykonywania działań przez konto robota lub dostęp do danych w imieniu Google Workspace lub Cloud Identity. Więcej informacji: Omówienie kont usługi.Google Cloud Console
- W konsoli Google Cloud otwórz menu > Administracja 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 role do swojego konta usługi, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie dostępu do zasobów.
- Kliknij Dalej.
- Opcjonalnie: wpisz użytkowników lub grupy, które mogą zarządzać kontem usługi i wykonywać na nim działania. Więcej informacji znajdziesz w artykule Zarządzanie przyjęciem 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 role do swojego konta usługi, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie dostępu do zasobów.
Utwórz dane logowania dla konta usługi
Dane logowania musisz uzyskać w postaci pary kluczy publiczny/prywatny. Te dane logowania są używane w Twoim kodzie do autoryzowania działań kont usługi w obrębie do aplikacji.- W konsoli Google Cloud otwórz menu > Administracja Administracja > Konta usługi. .
- Wybierz konto usługi.
- Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
- Wybierz JSON i kliknij Utwórz.
Nowa para kluczy publiczny/prywatny zostanie wygenerowana i pobrana na na komputerze jako nowy plik. Zapisz pobrany plik JSON jako
credentials.json
w katalog roboczy. Jest to jedyna kopia tego klucza. Informacje na temat sposobu przechowywania danych klucz bezpieczeństwa, zobacz 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: Twoje konto usługi musi mieć przyznane uprawnienia w całej domenie w konsoli administracyjnej Google Workspace przy użyciu konta superadministratora. Więcej Więcej informacji zawiera Przekazywanie uprawnień do całej domeny kontu usługi.- W konsoli Google Cloud otwórz menu > Administracja Administracja > Konta usługi. .
- Wybierz konto usługi.
- Kliknij Pokaż ustawienia zaawansowane.
- W sekcji „Przekazywanie dostępu w całej domenie” znajdź „Identyfikator klienta” 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ę przy użyciu superadministratora. i postępuj zgodnie z instrukcjami.
Jeśli nie masz dostępu superadministratora do danego konta Google Workspace, skontaktuj się z superadministratorem tego konta i wyślij mu identyfikator klienta Twojego konta usługi i listę zakresów protokołu OAuth, aby mogli wykonać poniższe 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 nowy.
- W polu „Identyfikator klienta” wklej wcześniej skopiowany identyfikator klienta.
- W sekcji „Zakresy protokołu OAuth” wpisz rozdzielaną przecinkami listę zakresów wymaganych przez aplikację. To ten sam zestaw zakresów, który został zdefiniowany podczas konfigurowania ekranu zgody OAuth.
- Kliknij Autoryzuj.
Przygotowywanie obszaru roboczego
W katalogu roboczym utwórz nową strukturę projektu:
gradle init --type basic mkdir -p src/main/java src/main/resources
Z katalogu
src/main/resources/
skopiuj plikcredentials.json
. pobrane wcześniej.Otwórz domyślny plik
build.gradle
i zastąp jego zawartość plikiem ten kod: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 pasuje do 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
-
Przy pierwszym uruchomieniu przykładu pojawi się prośba o autoryzację dostępu:
- Jeśli wyświetli się prośba o zalogowanie się na konto Google, zaloguj się. Jeśli używasz wielu kont, wybierz jedno konto do autoryzacji.
- Kliknij Accept (Zaakceptuj).
Twoja aplikacja w Javie uruchamia i wywołuje interfejs Google Keep API.
Informacje o autoryzacji są przechowywane w systemie plików, więc przy następnym uruchomieniu próbki nie zostanie wyświetlony monit o autoryzację.
Dalsze kroki
- Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją
- Dokumentacja interfejsu API Google Keep
- Dokumentacja klienta interfejsów API Google do języka Java
- Dokumentacja interfejsu Google Keep API w języku Javadoc