Street View Publish API'ye temel çağrılar yapmak üzere gereken adımları tamamlamak için bu eğitimdeki adımları izleyin.
HTTP çağrıları yapma
Street View Publish API, curl, wget ve Postman. Çoğu durumda, bir istemci uygulaması oluşturmak için tercih ettiğiniz bir programlama dilini kullanmak vardır. Bu eğitim, öğrenme süreci boyunca size rehberlik ederek kullanabilirsiniz.
İzin vermezseniz bazı istemci kitaplıkları da doğrudan HTTP çağrıları yapmak istediğinizi varsayalım.
Ön koşullar
-
Google API Konsolu'na erişmek, API anahtarı istemek ve uygulamanızı kaydetmek için bir Google Hesabınız olmalıdır.
-
Google Developers Console'da bir proje oluşturun ve uygulamanızın API istekleri gönderebilmesi için yetkilendirme kimlik bilgilerini edinin.
-
Projenizi oluşturduktan sonra, Street View Publish API'nin uygulamanızın kayıtlı olduğu hizmetlerden biri olduğundan emin olun:
- API Konsolu'na gidin ve az önce kaydettiğiniz projeyi seçin.
- Etkin API'ler sayfasını ziyaret edin. Google Street View API'nin, etkin API'ler listesinde bulunduğundan emin olun. Etkin değilse API Kitaplığı'nı açın ve API'yi etkinleştirin.
-
OAuth 2.0 yetkilendirmesini nasıl uygulayacağınızı öğrenmek için kimlik doğrulama kılavuzunu okuyun.
-
JavaScript Object Notation (JSON) veri biçimiyle ilgili temel kavramları öğrenin. JSON, rastgele veri yapılarının basit metin temsilini sağlayan, dilden bağımsız bir veri biçimidir. Daha fazla bilgi için json.org adresine bakın.
API anahtarı edinme
Kimlik doğrulama ve kota için, Developers Console'dan oluşturulan kimlik bilgileriyle Google Street View Publish API'yi kullanmanız gerekir.
- Kimlik bilgileri'ne gidin. sayfasını ziyaret edin.
- Zaten bir API anahtarınız varsa içindeki değeri kullanabilirsiniz. Aksi halde Yeni kimlik bilgileri menüsünden API anahtarı'nı seçerek yeni bir kimlik bilgisi oluşturabilirsiniz.
Erişim jetonu alma
- Google Developers OAuth 2.0 Playground'a gidin.
- Ayarlar menüsünü (sağ üstteki dişli simgesi), Kendi OAuth kimlik bilgilerinizi kullanın'ı işaretleyin ve
Client ID
veClient secret
seçin ve Kapat'ı tıklayın. - 1. Adım: Seçin & API'leri yetkilendirme, API kapsamını girin
https://www.googleapis.com/auth/streetviewpublish
Kendi kapsamlarınızı girin alanında API'leri Yetkilendir'i tıklayın. CEVAP API'yi yetkilendirmek istediğinizi onaylamak için yeni bir sayfa açılır. - Jetonlar için yetkilendirme kodu değiş tokuşu yap seçeneğini tıklayın Bu, Access token (Erişim jetonu) alanı, bir sonraki adıma geçebiliriz. Erişim jetonunun süresi 60 dakika içinde dolar. Şu seçeneği belirleyebilirsiniz: Jetonu süresi dolmadan önce otomatik olarak yenileyin. Bu işlem, yeni bir jeton oluşturur.
HTTP isteği gönderme
API anahtarınızı ve erişim jetonunuzu aldıktan sonra aşağıdaki komutu çalıştırabilirsiniz
bir kabuk üzerinde çalışır. Aşağıdaki örnekte,
/v1/photo:startUpload
yöntemine çağrı yapın.
$ 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önderme konusunda sorun çözülmezse yöntemlerine göz atın. Aşağıda çeşitli çağrılar gösteriliyor.
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 yükleme URL'si döndürür. Bu değer, ikinci çağrıda 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ğraflı kimliği döndürür.
- Yükleme URL'si İste
$ 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'
. - 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'
. - 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 çok fotoğrafı toplu olarak 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?
updateMask
, belirli bir bölümü güncellemek isterseniz isteklerinizi küçük tutmanın bir yoludur
bir fotoğraf resmini çekecektir. updateMask
olmadan, isteğiniz şu ayarı günceller:
tüm fotoğrafı gösterir. Bu, updateMask
değerini ayarlamazsanız ve isteğinizin
pose
eksik, fotoğrafınızın pose
fotoğrafları temizlenecek. Bazı olası değerler
updateMask
kategorisi: places, pose.heading, pose.latlngpair, pose.level,
connections
. updateMask
alanına virgülle ayrılmış birden fazla değer girebilirsiniz.