Logo, kapak görseli ve fotoğraf yükleme

Konuma URL ile logo, kapak görseli ve galeri fotoğrafları ekleyin; eklenenleri listeleyin, ana görseli yıldızlayın, güncel olmayanları kaldırın.

Fotoğraflar bir konuma herkese açık URL aracılığıyla eklenir: görseli siz barındırırsınız, API görseli alıp depolar ve yayın platformları da görseli buradan alır. Bir konumda bir logo, bir kapak görseli ve istenilen sayıda ek fotoğraf tutulur; ek fotoğraflardan en fazla 4 tanesi öncelikli yerleşim için yıldızlanabilir.

1. URL aracılığıyla yükleme

POST /locations/photos, input.locationId ve bir input.photos dizisi alır. Her öğenin URL'si, url değil, photo adlı alana yazılır. type değerini açıkça LOGO, COVER veya ADDITIONAL olarak ayarlayın; type içermeyen bir öğe ek fotoğraf olarak depolanır.

Upload
curl -X POST https://listingsapi.com/api/v4/locations/photos \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{  "input": {    "locationId": "TG9jYXRpb246MTgwMDI4OQ==",    "photos": [      { "photo": "https://cdn.example.com/jenny-home/logo.png", "type": "LOGO" },      { "photo": "https://cdn.example.com/jenny-home/cover.jpg", "type": "COVER" },      { "photo": "https://cdn.example.com/jenny-home/storefront.jpg", "type": "ADDITIONAL" }    ]  }}'
JSON
{  "data": {    "addLocationPhotos": {      "success": true,      "request": {},      "photos": [        { "id": "TWVkaWFGaWxlOjU4Nzg5MzE=", "databaseId": 5878931, "type": "LOGO", "starred": false,          "url": "https://sy-media-store.s3-us-west-2.amazonaws.com/f868bb3f/59c670a3/f47d62a6.png" },        { "id": "TWVkaWFGaWxlOjU4Nzg5MzI=", "databaseId": 5878932, "type": "ADDITIONAL", "starred": false }      ],      "errors": null    }  }}

Her fotoğrafın id değerini saklayın: yıldızlama ve kaldırma uç noktaları bu değeri alır. Bir LOGO veya COVER yeniden yüklendiğinde mevcut olanın yerini alır. Küçük bir toplu yükleme bu şekilde doğrudan depolanır. Büyük bir toplu yükleme ise kuyruğa alınır: photos boş döner ve request.requestId ayarlanır. requestId bulunup bulunmadığına göre dallanma yapın, ardından GET /locations/photos/requests/{requestId} uç noktasını düzenli aralıklarla sorgulayın.

Poll a queued batch
curl https://listingsapi.com/api/v4/locations/photos/requests/e6c2d9d9-9a18-4015-88cf-9a4e19a6f49a \-H "Authorization: API $LISTINGSAPI_KEY"
İşin status değeriAnlamı
PROCESSINGİşlem devam ediyor. Birkaç saniye sonra tekrar sorgulayın.
SUCCESSİşlem tamamlandı. Yine de bazı fotoğrafların işlenmesi başarısız olmuş olabilir, bu nedenle photos[].status ve photos[].errorMessage değerlerini okuyun.
ERRORİşin kendisi başarısız oldu. photos[].errorMessage değerini inceleyin.

2. Ekli olanları listeleme

GET /locations/{locationId}/photos, konumdaki tüm medya dosyalarını düz bir dizi olarak döndürür. Yüklemeden önce logo veya kapak görselinin eksik olup olmadığını kontrol etmek ve sonraki iki adım için id değerlerini toplamak amacıyla bunu kullanın. Yol, base64 biçimindeki id değerini veya ham sayıyı kabul eder.

List photos
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/photos \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "mediaFilesOfLocation": [      { "id": "TWVkaWFGaWxlOjU4Nzg5MzE=", "categoryName": "Logo", "categoryId": "4", "starred": false, "viewsCount": 0 },      { "id": "TWVkaWFGaWxlOjU4Nzg5MzI=", "categoryName": "Additional", "categoryId": "12", "starred": true, "viewsCount": 143 }    ]  }}

categoryName, Logo, Cover veya Additional değerini alır. Medya içermeyen bir konum için hata değil, boş bir dizi döndürülür.

3. Ek fotoğrafları yıldızlama

POST /locations/photos/star, öne çıkan görselleri destekleyen yayın platformlarında öncelikli yerleşim için ek fotoğrafları işaretler. Yalnızca ADDITIONAL fotoğrafları yıldızlanabilir ve konum başına en fazla 4 fotoğraf yıldızlanabilir; beşinci fotoğraf, çağrının tamamının SY15012 ile başarısız olmasına neden olur. Yükleme sırasında bir öğede starred: true değerini de iletebilirsiniz.

Star
curl -X POST https://listingsapi.com/api/v4/locations/photos/star \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{  "input": {    "locationId": "TG9jYXRpb246MTgwMDI4OQ==",    "photoIds": ["TWVkaWFGaWxlOjU4Nzg5MzI="],    "starred": true  }}'
JSON
{  "data": {    "starUnstarLocationPhotos": {      "success": true,      "photos": [        { "id": "TWVkaWFGaWxlOjU4Nzg5MzI=", "type": "ADDITIONAL", "starred": true }      ],      "error": null    }  }}

Yanıt anahtarı starUnstarLocationPhotos şeklindedir ve bir errors dizisi değil, tek bir error içerir. Gövdedeki starred bayrağı eylemi kontrol eder: yıldızı kaldırmak için false gönderin. SDK metotları aynı boolean değerini alır.

4. Fotoğraf kaldırma

POST /locations/photos/remove, ek fotoğrafların konumla bağlantısını id değerlerine göre kaldırır. removedCount, kaç fotoğrafın bağlantısının kaldırıldığını bildirir; dolayısıyla 0 ile birlikte errors: null alınması, bu id değerlerinden hiçbirinin bu konuma bağlı olmadığı anlamına gelir.

Remove
curl -X POST https://listingsapi.com/api/v4/locations/photos/remove \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{  "input": {    "locationId": "TG9jYXRpb246MTgwMDI4OQ==",    "photoIds": ["TWVkaWFGaWxlOjU4Nzg5MzI="]  }}'
JSON
{  "data": {    "removeLocationPhotos": {      "removedCount": 1,      "errors": null    }  }}

Burada yalnızca ADDITIONAL fotoğrafları kaldırılabilir. Logoyu veya kapak görselini değiştirmek için ilgili type değeriyle yeni bir görsel yükleyin; bu görsel eskisinin yerini alır. Kaldırma işlemi dosyanın konumla bağlantısını kaldırır; dosyayı medya kitaplığınızdan tamamen silmesi gerekmez.

5. Yayın platformlarının her görsel alanını nasıl kullandığı

Görsel alanıAdetYayın platformlarının kullanım şekli
LOGOKonum başına 1Profil veya marka görseli olarak gösterilir. Yeniden yükleme mevcut görselin yerini alır. API aracılığıyla yıldızlanamaz veya kaldırılamaz.
COVERKonum başına 1Üst bilgi görseli bulunan işletme kayıtlarında bu görsel olarak gösterilir. Logoda olduğu gibi, yalnızca yenisiyle değiştirmeye izin veren kurallar geçerlidir.
ADDITIONALİstenilen sayıdaGaleri. Belirtilmediğinde varsayılan type değeridir. Kaldırılabilir.
Yıldızlı ADDITIONALEn fazla 4Öne çıkan görselleri destekleyen yayın platformlarında öncelikli yerleşim sağlanır; bu nedenle en iyi dış ve iç mekân fotoğraflarınıza öncelik verin.

Sonraki adımlar