Wykonywanie pierwszych wywołań interfejsu API

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

  1. Aby uzyskać dostęp do Konsoli interfejsów API Google, poprosić o klucz interfejsu API i zarejestrować aplikację, musisz mieć konto Google.

  2. Utwórz projekt w Google Developers Console i uzyskaj dane logowania, aby aplikacja mogła przesyłać żądania do interfejsu API.

  3. Po utworzeniu projektu upewnij się, że interfejs Street View Publish API jest jedną z usług, z których może korzystać Twoja aplikacja:

    1. Otwórz Konsolę interfejsów API i wybierz przed chwilą zarejestrowany projekt.
    2. 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.
  4. Przeczytaj przewodnik na temat uwierzytelniania, aby dowiedzieć się, jak wdrożyć autoryzację OAuth 2.0.

  5. 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.

  1. Otwórz Dane logowania. w Developers Console.
  2. 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

  1. Otwórz stronę Google Developers OAuth 2.0 Playground.
  2. 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 oraz Client secret w odpowiednich polach, a następnie kliknij Zamknij.
  3. 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.
  4. 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.

  1. 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'
          
  2. 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'
          
  3. 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.