Yorumları yanıtlayın, yanıtı düzenleyin veya arşivleyin

İşletme sahibi yanıtına açık yorumları bulun, yanıtlayın, yanıtın yayın platformuna ulaştığını doğrulayın; metnini düzeltin veya arşivleyin.

İşletme sahibi yanıtı sizin adınıza yayın platformuna gönderilir. API yanıtı hemen kabul eder ve asenkron olarak iletir; sıralama şöyledir: yanıtlanabilecek bir yorum seçin, yanıtı gönderin, ardından yeniden okuyarak doğrulayın.

1. Yanıtlanabilecek yorumları seçin

Konumun yorumlarını listeleyin ve canRespond değeri true, responded değeri ise false olanları tutun. responseStatus=["PENDING"] filtresi ikinci kontrolü sunucu tarafında yapar; JSON değerinin URL kodlamasıyla kodlanması gerekir ve bunu --data-urlencode yapar.

Answerable reviews
curl -G "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/reviews" \-H "Authorization: API $LISTINGSAPI_KEY" \--data-urlencode 'responseStatus=["PENDING"]' \--data-urlencode 'first=25'
JSON
{  "node": {    "id": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",    "source": "maps.google.com",    "rating": 5,    "content": "nice place for family together",    "responded": false,    "responseCount": 0,    "canRespond": true  }}

API üzerinden işletme sahibi yanıtı kabul etmeyen kaynaklarda canRespond değeri false olur. Bunları atlayın; yanıt gönderme girişimi yayın platformuna ulaşmaz. Taslak hazırlarken Yorum ifadelerini listeleme işlemi, müşterilerin en çok nelerden bahsettiğini gösterir; böylece yanıtınızda bunlara değinebilirsiniz.

2. Bir yanıt gönderin

POST /locations/reviews/respond, alanları input içine alınmış olarak değil, doğrudan gövdede alır. interactionId, yorumun id değeridir. respondedWith isteğe bağlıdır ve bir yanıt şablonu kullandıysanız bu şablonun adını belirtir.

Respond
curl -X POST https://listingsapi.com/api/v4/locations/reviews/respond \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{  "interactionId": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",  "responseContent": "Thank you for visiting Jenny Home: we are glad you enjoyed your experience!"}'
JSON
{  "data": {    "respondToInteraction": {      "interaction": {        "id": "2090753a-ece6-4837-8336-8494ad308523",        "interactionId": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",        "content": "Thank you for visiting Jenny Home: we are glad you enjoyed your experience!",        "interactionStatus": "CREATED",        "editedResponse": false      },      "errors": null    }  }}

interaction.id değerini saklayın: yanıtı daha sonra düzenlemek veya arşivlemek için ihtiyacınız olan responseId budur. Reddedilen bir yanıt, data.respondToInteraction içindeki errors doldurulmuş olarak 200 ile döner; bu nedenle gövdeyi okuyun. SDK'lar bu durumda ValidationError hatasını üretir.

3. Yanıtın yayın platformuna ulaştığını doğrulayın

interactionStatus başlangıçta CREATED değerindedir ve ek çağrı gerektirmeden ilerler. Kısa bir süre bekledikten sonra yorumu id ile yeniden okuyun ve responded, responseCount değerlerini ve responses[] içindeki yanıt durumunu kontrol edin.

DurumAnlamı
CREATEDKabul edildi ve yayın platformuna gönderilmek üzere sıraya alındı.
COMPLETEDYayın platformuna gönderildi. Bazı platformlarda süreç burada sona erer.
CONFIRMEDGönderildi ve yayın platformu tarafından doğrulandı.
FAILEDYayın platformu yanıtı reddetti. Yanıttaki remarks bunun nedenini belirtir.
Re-read
curl -G "https://listingsapi.com/api/v4/reviewDetails" \-H "Authorization: API $LISTINGSAPI_KEY" \--data-urlencode 'interactionIds=["9e26d2a8-a6ed-42ea-8454-47d1c92ea841"]'
JSON
{  "id": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",  "responded": true,  "responseCount": 1,  "responses": [    {      "id": "2090753a-ece6-4837-8336-8494ad308523",      "content": "Thank you for visiting Jenny Home: we are glad you enjoyed your experience!",      "interactionStatus": "CONFIRMED",      "editedResponse": false    }  ]}

CONFIRMED veya COMPLETED durumundaki bir yanıtla birlikte responded: true görülmesi, müşterinin yanıtı görebildiği anlamına gelir. FAILED görürseniz yeniden denemeden önce yayın platformunun gerekçesini öğrenmek için yanıttaki remarks değerini okuyun.

4. Bir yanıtı düzenleyin

POST /locations/reviews/respond/edit her iki id'yi de gerektirir: reviewId yorumu, responseId ise 2. adımdaki yanıtı belirtir. Düzenleme yeniden gönderilir; bu nedenle yanıtın interactionStatus değeri CREATED değerine döner ve düzenleme yayın platformuna ulaştığında editedResponse değeri true olur.

Edit reply
curl -X POST https://listingsapi.com/api/v4/locations/reviews/respond/edit \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{  "reviewId": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",  "responseId": "2090753a-ece6-4837-8336-8494ad308523",  "responseContent": "Thank you again: we have updated our reply to include our new store hours."}'
JSON
{  "data": {    "editResponse": {      "status": "true",      "reviewId": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",      "responseId": "2090753a-ece6-4837-8336-8494ad308523"    }  }}

Düzenleme kabul edildiğinde status, "true" dizesidir. Yeni metni 3. adımdaki yöntemle doğrulayın.

5. Bir yanıtı arşivleyin

POST /locations/reviews/respond/archive yalnızca responseId alır. Arşivleme, yanıtı Listings API'deki etkileşimin responses alanından kaldırır. Google veya Facebook'ta zaten yayında olan bir yanıtı geri çekmez; bu nedenle arşivlemeyi başarısız olan veya yerini başka bir taslağa bırakan taslakları temizlemek için, düzenlemeyi ise yayımlanmış yanıtlar için kullanın.

Archive reply
curl -X POST https://listingsapi.com/api/v4/locations/reviews/respond/archive \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "responseId": "2090753a-ece6-4837-8336-8494ad308523" }'
JSON
{  "data": {    "archiveResponse": {      "status": "true"    }  }}

Arşivlemeden sonra yorumun responseCount değeri azalır ve responded kalan yanıtları yansıtır.

6. Yanıt olaylarını webhook aracılığıyla alın

Bir yanıt gönderildiğinde, düzenlendiğinde veya arşivlendiğinde interaction.response olayı tetiklenir. Olay verileri data.interaction altında yer alır ve type: "Response" ile parent_id yorumun id'sine ayarlanır; böylece başka bir çağrı yapmadan olayı kendi kaydınızla eşleştirebilirsiniz. interaction.review gibi, bu olayın location_id değeri de normalleştirilmemiştir ve null olabilir. Kurulum, Webhook'larla olaylara tepki verme bölümünde açıklanmıştır.

Sonraki adımlar