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.
curl -G "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/reviews" \-H "Authorization: API $LISTINGSAPI_KEY" \--data-urlencode 'responseStatus=["PENDING"]' \--data-urlencode 'first=25'{ "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.
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!"}'{ "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.
curl -G "https://listingsapi.com/api/v4/reviewDetails" \-H "Authorization: API $LISTINGSAPI_KEY" \--data-urlencode 'interactionIds=["9e26d2a8-a6ed-42ea-8454-47d1c92ea841"]'{ "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.
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."}'{ "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.
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" }'{ "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
- Yorumları alın: hesap genelinde bekleyen yorumların kuyruğunu oluşturun.
- Yorum analitiği: kuyruktaki yorumları işlerken
review-response-ratedeğerini takip edin. - Başvuru: Bir etkileşime yanıt verin, Bir yanıtı düzenleyin, Bir yanıtı arşivleyin, Etkileşim öznitelikleri.
- SDK'lar: Python yorumları, Node yorumları.