Aby wykonać podstawowe wywołania interfejsu Street View Publish API, postępuj zgodnie z instrukcjami podanymi w tym samouczku.
Wykonywanie wywołań HTTP
Interfejs Street View Publish API można wywołać za pomocą wielu narzędzi, takich jak curl, wget Postman. W większości przypadków przy tworzeniu aplikacji klienckiej warto użyć wybranego języka programowania. który korzysta z interfejsu API, ale ten samouczek przeprowadzi Cię przez podstawy, poszczególnych poleceń.
Udostępniamy też niektóre biblioteki klienta, które chcą wykonywać bezpośrednie wywołania HTTP.
Wymagania wstępne
-
Aby uzyskać dostęp do Konsoli interfejsów API Google, poprosić o klucz interfejsu API i zarejestrować aplikację, musisz mieć konto Google.
-
Utwórz projekt w Google Developers Console i uzyskaj dane logowania, aby aplikacja mogła przesyłać żądania do interfejsu API.
-
Po utworzeniu projektu upewnij się, że interfejs Street View Publish API jest jedną z usług, z których może korzystać Twoja aplikacja:
- Otwórz Konsolę interfejsów API i wybierz przed chwilą zarejestrowany projekt.
- Otwórz stronę Włączone interfejsy API. Sprawdź, czy interfejs Google Street View API znajduje się na liście włączonych interfejsów API. Jeśli nie, otwórz Bibliotekę interfejsów API i włącz ten interfejs API.
-
Przeczytaj przewodnik na temat uwierzytelniania, aby dowiedzieć się, jak wdrożyć autoryzację OAuth 2.0.
-
Zapoznaj się z podstawowymi pojęciami związanymi z formatem danych JSON (JavaScript Object Notation). JSON to popularny format danych niezależny od języka, który oferuje prostą tekstową prezentację dowolnych struktur danych. Więcej informacji znajdziesz na stronie json.org.
Uzyskiwanie klucza interfejsu API
Aby uwierzytelnić i ograniczyć limity, musisz używać interfejsu Google Street View Publish API z danymi logowania wygenerowanymi w Developers Console.
- Otwórz Dane logowania. w Developers Console.
- Jeśli masz już klucz interfejsu API, możesz użyć jego wartości. W przeciwnym razie utwórz nowe, wybierając Klucz interfejsu API z menu Nowe dane logowania.
Uzyskiwanie tokena dostępu
- Otwórz stronę Google Developers OAuth 2.0 Playground.
- Kliknij menu ustawień (ikona koła zębatego w prawym górnym rogu), zaznacz Użyj własnych danych logowania OAuth i wpisz
Client ID
orazClient secret
w odpowiednich polach, a następnie kliknij Zamknij. - W sekcji Krok 1. Wybierz & autoryzuj interfejsy API, podaj zakres API
https://www.googleapis.com/auth/streetviewpublish
w polu Wprowadź własne zakresy kliknij Authorize APIs. O aby potwierdzić, że chcesz autoryzować interfejs API. - Kliknij Exchange authorization code for token (Kod autoryzacji giełdy dla tokenów). W ten sposób wypełnisz Pole Token dostępu, które zawiera token dostępu, który będzie używany w kolejny krok. Token dostępu wygasa po 60 minutach. Możesz wybrać opcję automatycznie odświeżać token przed jego wygaśnięciem, co spowoduje utworzenie nowego tokena.
Wysyłanie żądania HTTP
Po uzyskaniu klucza interfejsu API i tokena dostępu możesz uruchomić następujące polecenie
w powłoce, aby wywołać usługę HTTP. W poniższym przykładzie
wywołaj metodę /v1/photo:startUpload
.
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
Przykładowe żądania
Gdy nabierzesz wprawy w wysyłaniu powyższego żądania HTTP, spróbuj użyć dodatkowych . Poniżej znajdziesz różne typy połączeń.
Pobieram listę Twoich zdjęć
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
Pobieram zdjęcie
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
Przesyłam zdjęcie
Utworzenie zdjęcia wymaga 3 osobnych połączeń. pierwsze wywołanie zwróci adres URL przesyłania. która jest używana w drugim wywołaniu do przesłania bajtów zdjęć. Po przesłaniu bajtów zdjęć trzecie wywołanie przesyła metadane zdjęcia i zwraca identyfikator zdjęcia.
- Poproś o adres URL przesyłania
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
- Prześlij bajty zdjęć na adres URL przesyłania
$ curl --request POST \ --url 'UPLOAD_URL' \ --upload-file 'PATH_TO_FILE' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
- Prześlij metadane zdjęcia
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "uploadReference": { "uploadUrl": "UPLOAD_URL" }, "pose": { "heading": 105.0, "latLngPair": { "latitude": 46.7512623, "longitude": -121.9376983 } }, "captureTime": { "seconds": 1483202694 }, }'
Aktualizowanie zdjęcia
$ curl --request PUT \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY&updateMask=pose.latLngPair' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "pose": { "latLngPair": { "latitude": 46.7512624, "longitude": -121.9376982 } } }'
Zbiorcza aktualizacja wielu zdjęć
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "updatePhotoRequests": [ { "photo": { "photoId": { "id": "FIRST_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1701638, "longitude": -122.3624387 } } }, "updateMask": "pose.latLngPair" }, { "photo": { "photoId": { "id": "SECOND_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1685704, "longitude": -122.3618021 } } }, "updateMask": "pose.latLngPair" } ] }'
Usuwanie zdjęcia
$ curl --request DELETE \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Czym jest updateMask?
updateMask
to sposób na zmniejszenie liczby próśb, jeśli chcesz zaktualizować część
tylko niektóre z nich. Jeśli nie podasz pola updateMask
, Twoja prośba zaktualizuje
całe zdjęcie. Oznacza to, że jeśli nie skonfigurujesz uprawnienia updateMask
, a Twoje żądanie będzie
brakuje wartości pose
, atrybuty pose
na Twoim zdjęciu zostaną usunięte. Niektóre możliwe wartości
dla updateMask
to: places, pose.heading, pose.latlngpair, pose.level,
connections
. W polu updateMask
możesz umieścić wiele wartości rozdzielonych przecinkami.