İlk API çağrılarınızı yapın

Street View Publish API'ye temel çağrı yapmak için gereken adımları tamamlamak üzere bu eğitimdeki adımları uygulayın.

HTTP çağrıları yapma

Street View Publish API, curl, wget ve Postman gibi birden fazla araç kullanılarak çağrılabilir. Çoğu durumda, API'yi kullanan bir istemci uygulaması derlemek için istediğiniz bir programlama dilini kullanmak istersiniz. Ancak bu eğitim, her bir komutta size yol göstererek temel bilgiler sağlar.

Doğrudan HTTP çağrıları yapmak istemediğinizde bazı istemci kitaplıkları da sunuyoruz.

Ön koşullar

  1. Google API Konsolu'na erişmek, API anahtarı istemek ve uygulamanızı kaydetmek için bir Google Hesabınız olmalıdır.

  2. Uygulamanızın API istekleri gönderebilmesi için Google Developers Console'da bir proje oluşturun ve yetkilendirme kimlik bilgilerini alın.

  3. Projenizi oluşturduktan sonra, Street View Publish API'nin uygulamanızın kullanmak için kayıtlı olduğu hizmetlerden biri olduğundan emin olun:

    1. API Konsolu'na gidin ve az önce kaydettiğiniz projeyi seçin.
    2. Etkin API'ler sayfasını ziyaret edin. Google Street View API'nin etkin API'ler listesinde bulunduğundan emin olun. API yoksa API Kitaplığını açın ve API'yi etkinleştirin.
  4. OAuth 2.0 yetkilendirmesini nasıl uygulayacağınızı öğrenmek için kimlik doğrulama kılavuzunu okuyun.

  5. JavaScript Object Notation (JSON) veri biçiminin temel kavramları hakkında bilgi edinin. JSON, rastgele veri yapılarının basit metin temsilini sağlayan yaygın bir dilden bağımsız veri biçimidir. Daha fazla bilgi için json.org adresine bakın.

API anahtarı edinme

Kimlik doğrulama ve kota işlemleri için, Developers Console'dan oluşturulan kimlik bilgileriyle Google Street View Publish API'yi kullanmanız gerekir.

  1. Developers Console'unuzda Kimlik bilgileri sayfasına gidin.
  2. Zaten bir API anahtarınız varsa bu anahtardaki değeri kullanabilirsiniz. Aksi takdirde, Yeni kimlik bilgileri menüsünden API anahtarı'nı seçerek yeni bir anahtar oluşturun.

Erişim jetonu alma

  1. Google Developers OAuth 2.0 Playground'a gidin.
  2. Ayarlar menüsünü (sağ üstteki dişli simgesi) tıklayın, Kendi OAuth kimlik bilgilerinizi kullanın seçeneğini işaretleyin, ilgili alanlara Client ID ve Client secret değerlerinizi girip Kapat'ı tıklayın.
  3. 1. Adım: API'leri seçin ve yetkilendirin altında, Kendi kapsamlarınızı girin alanına https://www.googleapis.com/auth/streetviewpublish API kapsamını girin ve API'leri Yetkilendir'i tıklayın. API'yi yetkilendirmek istediğinizi onaylayan yeni bir sayfa açılır.
  4. Jetonlar için yetkilendirme kodu takası'nı tıklayın. Bu alan, sonraki adımda kullanılacak erişim jetonunuzu içeren Erişim jetonu alanını doldurur. Erişim jetonunun süresi 60 dakika içinde dolar. Jetonu süresi dolmadan otomatik olarak yenileme seçeneğini belirleyebilirsiniz. Bu, yeni bir jetonun oluşturulmasını sağlar.

HTTP isteği gönder

API anahtarınızı ve erişim jetonunuzu aldıktan sonra hizmete bir HTTP çağrısı gerçekleştirmek için kabukta aşağıdaki komutu çalıştırabilirsiniz. Aşağıdaki örnekte, /v1/photo:startUpload yöntemine bir çağrı yapıyoruz.

    $ 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'
  

Örnek istekler

Yukarıdaki HTTP isteğini göndermeyi uygun bulduğunuzda başka ek yöntemler kullanmayı deneyin. Çeşitli aramalar aşağıda gösterilmektedir.

Fotoğraflarınızın listesi alınıyor

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Fotoğraf alınıyor

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Fotoğraf yükleme

Fotoğraf oluşturmak için üç ayrı arama gerekir. İlk çağrı, bir fotoğraf yükleme URL'si döndürür. Bu URL, ikinci görüşmede fotoğraf baytlarını yüklemek için kullanılır. Fotoğraf baytları yüklendikten sonra üçüncü çağrı, fotoğrafın meta verilerini yükler ve fotoğraf kimliğini döndürür.

  1. Yükleme URL'si isteyin
            $ 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. Fotoğraf baytlarını Yükleme URL'sine yükleyin
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. Fotoğrafın meta verilerini yükleyin
            $ 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
                      },
                    }'
          

Fotoğraf güncelleme

   $ 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
                 }
               }
             }'
  

Birden fazla fotoğrafı toplu güncelleme

   $ 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"
                  }
              ]
          }'
  

Fotoğraf silme

    $ curl --request DELETE \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
  

updateMask nedir?

Fotoğrafınızın tamamı yerine bir kısmını güncellemek istiyorsanız updateMask, isteklerinizi düşük düzeyde tutmanın bir yoludur. updateMask olmadan, isteğiniz tüm fotoğrafı günceller. Başka bir deyişle, updateMask özelliğini ayarlamazsanız ve isteğiniz pose eksikse fotoğrafınızın pose özelliği temizlenir. updateMask için olası bazı değerler: places, pose.heading, pose.latlngpair, pose.level, connections. updateMask içine birden fazla virgülle ayrılmış değer girebilirsiniz.