GET/api/v4/locations/{locationId}/reviews

عرض قائمة التفاعلات لموقع

يُرجع قائمة بالتقييمات والتفاعلات الاجتماعية لموقع واحد، مقسّمة إلى صفحات باستخدام المؤشر، مع إمكانية التصفية.

يتطلب مفتاح API. راجع المصادقة لمعرفة تنسيق الترويسة وتدوير المفاتيح.

المعلمات

المسار

الاسمالنوعمطلوبالوصف
locationIdstringمطلوبLocation ID, a raw numeric database ID (e.g. `1800289`) or its Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`).

الاستعلام

الاسمالنوعمطلوبالوصفالافتراضي
siteUrlsstringاختياريJSON-encoded array of publisher hostnames to include, e.g. `["maps.google.com","yelp.com"]`.—
startDatestringاختياريStart of the date-range filter (YYYY-MM-DD).—
endDatestringاختياريEnd of the date-range filter (YYYY-MM-DD).—
searchStringstringاختياريFull-text search across interaction content.—
categorystringاختياريSingle interaction category, e.g. `REVIEW`.—
categoriesstringاختياريJSON-encoded array of interaction categories.—
ratingFiltersstringاختياريJSON-encoded array of star ratings to include, e.g. `[3,4]`.—
ratingFilterintegerاختياريSingle star rating to filter by.—
responseStatusstringاختياريJSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`.—
sortOrderstringاختياريJSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`.—
firstintegerاختياريNumber of records to return from the beginning (newest first). Defaults to 20 when omitted, the endpoint always returns a single page, never the whole history.—
afterstringاختياريCursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page.—
lastintegerاختياريNumber of records to return from the end.—
beforestringاختياريCursor to page backward from, used with `last`. Pass the `cursor` of the first edge of the page you are moving back from. `pageInfo` carries no `startCursor` field, so the edge cursor is the value to use.—

الاستجابات

200Paginated interactions result. `data.interactions` holds the connection.
Response
{  "data": {    "interactions": {      "pageInfo": {        "hasNextPage": true,        "hasPreviousPage": false,        "endCursor": "SW50ZXJhY3Rpb246MV8xNTU0MjQzMDczMDM2LTllMjZkMmE4LWE2ZWQtNDJlYS04NDU0LTQ3ZDFjOTJlYTg0MQ=="      },      "edges": [        {          "node": {            "id": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",            "source": "maps.google.com",            "content": "nice place for family together",            "authorName": "vaibhav nakate",            "rating": 5,            "date": "2019-04-02T22:11:13.036997+00:00",            "category": "Review",            "type": "Review",            "responded": false,            "responseCount": 0,            "canRespond": true,            "permalink": "https://maps.google.com/maps?cid=..."          },          "cursor": "SW50ZXJhY3Rpb246MV8xNTU0MjQzMDczMDM2LTllMjZkMmE4LWE2ZWQtNDJlYS04NDU0LTQ3ZDFjOTJlYTg0MQ=="        }      ],      "totalCount": 425    }  }}
401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

يُرجع التقييمات والتفاعلات الاجتماعية لموقع باستخدام تقسيم الصفحات المستند إلى المؤشر. تُرتَّب النتائج افتراضيًا من الأحدث إلى الأقدم. يوجد الاتصال في data.interactions ويحتوي على edges[].node (راجع مرجع سمات التفاعل)، وعلى endCursor داخل pageInfo، وعلى totalCount.

يمثّل totalCount عدد التفاعلات المطابقة لعوامل التصفية عبر مجموعة النتائج بأكملها، وليس العدد المُرجَع في هذه الصفحة. استخدمه لتقدير حجم عملية استرجاع البيانات السابقة أو للتحقق من العدد الذي حسبته: فموقع لديه totalCount: 450 وتُقرأ بياناته باستخدام first=50 يتطلب 9 طلبات، وينبغي أن يبلغ مجموع الأعداد 450 عند الوصول إلى النهاية. يؤدي إغفال first إلى إرجاع 20 سجلًا، لذا لا يعيد استدعاء واحد كل التفاعلات السابقة أبدًا.

حالة استخدام: صندوق وارد للتقييمات لكل متجر

لإنشاء صندوق وارد للتقييمات لموقع واحد، انتقل إلى الصفحات التالية باستخدام first وafter: اطلب first=25، ثم مرّر قيمة pageInfo.endCursor الواردة في الاستجابة بوصفها after في الاستدعاء التالي. تحمل كل حافة أيضًا قيمة cursor الخاصة بها، وتكون قيمة cursor للحافة الأخيرة هي قيمة endCursor لتلك الصفحة، لذا يمكن استخدام أيٍّ من القيمتين بوصفها after. توقّف عندما تكون قيمة hasNextPage هي false أو عندما تُرجع صفحة مصفوفة edges فارغة، وتحقّق من كلا الشرطين، لأن الصفحة التي تقع نهايتها عند أقدم تقييم تمامًا تتبعها صفحة أخيرة فارغة. أضف responseStatus=["PENDING"] لعرض التقييمات التي لا تزال تنتظر ردًا من المالك فقط، أو ratingFilters=[1,2] لفرز التقييمات السلبية والتعامل معها أولًا. من كل node، تكون قيمة id هي ما تمرّره إلى الرد على تفاعل، ويبيّن لك canRespond ما إذا كان ذلك المصدر يقبل ردود المالك.

حالة استخدام: المزامنة التزايدية

لإبقاء نسخة محلية متزامنة، صفِّ النتائج باستخدام startDate/endDate ورتّبها باستخدام sortOrder=["NEWEST_FIRST"]، مع حفظ أعلى قيمة date صادفتها. لاحظ أن نقطة النهاية هذه تُرجع النتائج على صفحات وتخضع لحدود معدل الطلبات، لذا التزم بترويسة Retry-After عند تلقي 429 وتجنّب إعادة جلب كل التفاعلات السابقة في كل تشغيل.

تتوفر Google Maps وFacebook في كل خطة. تتوفر Yelp في خطتَي Growth وEnterprise. تُمرَّر عوامل التصفية المرمَّزة بصيغة JSON (siteUrls، categories، ratingFilters، responseStatus، sortOrder) كسلاسل نصية بصيغة JSON خاضعة لترميز URL.

Request
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/reviews' \  -H "Authorization: API $LISTINGSAPI_KEY"