Interfejs Google Play Developer Reply to Reviews API umożliwia wyświetlanie opinii użytkowników o aplikacji i odpowiadanie na nie. Możesz używać tego interfejsu API do bezpośredniej interakcji z użytkownikami w ramach dotychczasowego zestawu narzędzi do obsługi klienta, np. systemu CRM.
Interfejs Reply to Reviews API daje Ci dostęp tylko do opinii o produkcyjnych wersjach aplikacji. Jeśli chcesz zobaczyć opinie na temat wersji alfa lub beta swojej aplikacji, użyj Konsoli Google Play. Pamiętaj też, że interfejs API pokazuje tylko opinie z komentarzami. Jeśli użytkownik oceni aplikację, ale nie doda komentarza, jego opinia nie będzie dostępna przez interfejs API.
Uzyskiwanie dostępu
Aby korzystać z interfejsu Reply to Reviews API, musisz dokonać autoryzacji za pomocą klienta OAuth lub konta usługi. Jeśli używasz konta usługi, włącz na nim uprawnienie „Odpowiadanie na opinie”. Więcej informacji o uzyskiwaniu autoryzowanego dostępu do tego interfejsu API znajdziesz w artykule o konfigurowaniu klientów dostępu do interfejsu API.
Pobieranie opinii
Korzystając z interfejsu Reply to Reviews API, możesz pobrać listę wszystkich najnowszych opinii o swojej aplikacji lub wyświetlić pojedynczą opinię.
Pobieranie zestawu opinii
Użyj metody GET
, aby poprosić o listę opinii o aplikacji. W żądaniu podaj pełną i jednoznaczną nazwę pakietu aplikacji, np. com.google.android.apps.maps
, oraz token autoryzacji otrzymany podczas uzyskiwania dostępu do interfejsu API.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token
Odpowiedź jest ciągiem tekstowym JSON zawierającym listę opinii o aplikacji. Pierwszy wynik na liście zawiera ostatnio utworzony lub zmodyfikowany komentarz użytkownika.
W poniższym przykładzie pierwsza opinia zawiera metadane pojawiające się we wszystkich wynikach, a druga – metadane, które pojawiają się tylko w niektórych wynikach:
{ "reviews": [ { "reviewId": "12345678", "authorName": "Jane Bloggs", "comments": [ { "userComment": { "text": "This is the best app ever!", "lastModified": { "seconds": "1443676826", "nanos": 713000000 }, "starRating": 5 } } ] }, { "reviewId": "11223344", "authorName": "John Doe", "comments": [ { "userComment": { "text": "I love using this app!", "lastModified": { "seconds": "141582134", "nanos": 213000000 }, "starRating": 5, "reviewerLanguage": "en", "device": "trltecan", "androidOsVersion": 21, "appVersionCode": 12345, "appVersionName": "1.2.3", "thumbsUpCount": 10, "thumbsDownCount": 3, "deviceMetadata": { "productName": "E5333 (Xperia™ C4 Dual)", "manufacturer": "Sony", "deviceClass": "phone", "screenWidthPx": 1080, "screenHeightPx": 1920, "nativePlatform": "armeabi-v7a,armeabi,arm64-v8a", "screenDensityDpi": 480, "glEsVersion": 196608, "cpuModel": "MT6752", "cpuMake": "Mediatek", "ramMb": 2048 } } }, { "developerComment": { "text": "That's great to hear!", "lastModified": { "seconds": "1423101467", "nanos": 813000000 } } } ] } ], "tokenPagination": { "nextPageToken": "12334566" } }
Każdy wynik zawiera te metadane:
- reviewId
- Jednoznacznie identyfikuje daną opinię. Pokazuje on też opinię konkretnego użytkownika, ponieważ może napisać tylko jedną opinię o danej aplikacji.
- authorName
Nazwa użytkownika, który pisze opinię.
Uwaga: czasami
authorName
może nie pojawiać się w danym wyniku.- comments
Lista z opinią użytkownika o aplikacji. Jeśli opinia zawiera tytuł, ten tytuł i treść opinii pojawią się w elemencie
text
, a znak tabulacji oddzieli tytuł i treść opinii. ElementlastModified
wskazuje godzinę, o której użytkownik ostatnio przesłał swoją opinię.Jeśli Twoja opinia została już przez Ciebie przesłana, pojawi się jako drugi element na liście komentarzy.
- starRating
Ocena aplikacji przez użytkownika w skali od 1 do 5. Wynik 5 oznacza, że użytkownik jest bardzo zadowolony z aplikacji.
Domyślnie na każdej stronie wyświetla się 10 opinii. Możesz wyświetlić maksymalnie 100 opinii na stronę, ustawiając w żądaniu parametr maxResults
.
Jeśli lista opinii jest kontynuowana na innej stronie, interfejs API zawiera w odpowiedzi element tokenPagination
. Gdy zgłaszasz prośbę o wyświetlenie następnej strony z opiniami, uwzględnij element token
. Ustaw wartość tego elementu na wartość nextPageToken
, która występuje w pierwotnej odpowiedzi.
Uwaga: możesz pobrać tylko opinie utworzone lub zmodyfikowane przez użytkowników w ciągu ostatniego tygodnia. Jeśli chcesz pobrać wszystkie opinie o swojej aplikacji od początku, możesz je pobrać w pliku CSV w Konsoli Google Play.
Poniższy przykład żądania GET
wyświetla następną stronę opinii. W tym żądaniu zakładamy, że bieżąca strona z opiniami (jak podano w odpowiedzi na poprzednie żądanie) zawiera wartość nextPageToken
o wartości "12334566"
. Żądanie wskazuje też, że na następnej stronie powinno wyświetlać się maksymalnie 50 opinii.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&token=12334566&maxResults=50
Pobieranie pojedynczej opinii
Aby pobrać pojedynczą opinię, możesz też użyć metody GET
. Podajesz ten sam adres URL, który został użyty do pobierania zbioru opinii, z tą różnicą, że uwzględniasz też review_id
odpowiadający opinii, którą chcesz zobaczyć:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
Odpowiednia odpowiedź to ciąg znaków JSON zawierający treści i metadane dotyczące pojedynczej opinii:
{ "reviewId": "87654321", "authorName": "Joan Smith", "comments": [ { "userComment": { "text": "This app is awesome!", "lastModified": { "seconds": "1452114723", "nanos": 913000000 }, "starRating": 5 } } ] }
Tłumaczenie tekstu opinii
Zanim tekst opinii zostanie zwrócony z interfejsu Reviews API, może zostać przetłumaczony automatycznie. Podczas pobierania listy lub pojedynczej opinii dodaj do zapytania parametr translationLanguage
. Na przykład:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&translationLanguage=en
Parametr translationLanguage
może określać język z krajem lub bez niego. np. „en” i „en_GB”.
Jeśli określisz język tłumaczenia, który jest inny niż oryginalny, system zwróci przetłumaczony tekst we właściwości text
, a oryginalny tekst – we właściwości originalText
. Oto przykład:
{ "reviewId": "12345678", "authorName": "Jane Bloggs", "comments": [ { "userComment": { "text": "This is the best app ever!", "lastModified": { "seconds": "1443676826", "nanos": 713000000 }, "starRating": 5, "originalText": "Dies ist die beste App überhaupt!" } } ] }
Odpowiadanie na opinie
Możesz też zaangażować użytkowników swojej aplikacji, odpowiadając na ich opinie. Gdy prześlesz odpowiedź, użytkownik otrzyma powiadomienie z informacją, że na niego odpowiedziałeś.
Odradzamy korzystanie z automatycznych odpowiedzi na opinie z zamiarem ręcznego aktualizowania tych odpowiedzi w późniejszym czasie. Możesz na nią odpowiedzieć dowolną liczbę razy, ale użytkownik otrzymuje powiadomienie dopiero po pierwszej Twojej odpowiedzi na utworzoną lub zmodyfikowaną opinię. Tabela poniżej pokazuje, w jaki sposób użytkownik jest powiadamiany w trakcie Twoich interakcji:
Interakcja użytkownika z programistą | Wysłano powiadomienie do użytkownika? |
---|---|
Użytkownik pisze opinię, deweloper przesyła odpowiedź | Tak |
Aktualizacje dla deweloperów odpowiadają na oryginalną opinię | No |
Opinie użytkowników, aktualizacje dla deweloperów | Tak |
Uwaga: Twoje odpowiedzi na opinie są widoczne publicznie na stronie sklepu z aplikacjami, dlatego podczas pisania tych odpowiedzi nie podawaj żadnych informacji poufnych o użytkownikach.
Aby przesłać odpowiedź na opinię użytkownika, użyj metody POST
. W swoim żądaniu wskaż, że Content-Type
to application/json
, i dołącz dokument JSON zawierający Twoją odpowiedź:
POST https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id:reply?access_token=your_access_token Content-Type: application/json { "replyText": "Thanks for your feedback!" }
Uwaga: pole replyText
dołączone do żądania POST
może zawierać maksymalnie 350 znaków. W odpowiedzi użyj zwykłego tekstu. Poprawne tagi HTML są usuwane i nie są uwzględniane w liczbie znaków. Jednak treść umieszczana w tagach HTML o prawidłowym formacie jest zachowywana.
Jeśli żądanie zostanie zrealizowane, otrzymasz w odpowiedzi ten ciąg JSON.
Element lastEdited
wskazuje czas, kiedy interfejs API rejestruje Twoją odpowiedź na opinię użytkownika.
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
Jeśli jednak żądanie POST
jest nieprawidłowe, w odpowiedzi wyświetli się jeden z tych kodów błędów:
400 Bad Reply Request
replyText
jest za długi lub nie ma go w ogóle.404 Not Found
- Opinia o podanym elemencie
review_id
nie istnieje.
Limity
Aby ułatwić pracę innym deweloperom, interfejs Reply to Reviews API wymusza kilka limitów. Limity te obowiązują oddzielnie dla poszczególnych aplikacji:
GET
żądań (do pobierania list opinii i pojedynczych opinii) – 200 na godzinęPOST
żądań (za odpowiadanie na opinie) – 2000 dziennie
Jeśli Twoja aplikacja musi uzyskać dostęp do większej liczby opinii lub odpowiedzieć na nie, wysyłając prośbę o zwiększenie limitu.