İçeriğe geç
Veri MerkeziVeri MerkeziAPI

Temeller

Liste uçlarında imleç (cursor) tabanlı sayfalama, uç bazında yanıt zarfları ve tüm kayıtları çekme örnekleri.

Liste döndüren uçlar imleç (cursor) ile sayfalanır. Sayfa numarası ya da offset yoktur. Her yanıt bir sonraki sayfa için bir imleç verir.

#Nasıl çalışır

  1. İlk isteği cursor olmadan, isteğe bağlı limit ile yapın.
  2. Yanıttaki next_cursor değerini bir sonraki istekte cursor parametresine verin.
  3. has_more: false (ya da next_cursor: null) olduğunda durun.
BASH
curl "https://api.verimerkezi.app/wa/contacts?limit=50" \
  -H "Authorization: Bearer $VM_API_KEY"
JSON
{
  "ok": true,
  "contacts": [
    { "id": 26481, "phone": "+905550000000", "name": "Ayşe Yılmaz" }
  ],
  "next_cursor": "eyJpZCI6MjY0ODEsImsiOiJpZCIsImQiOiJkZXNjIn0",
  "has_more": true
}
BASH
curl "https://api.verimerkezi.app/wa/contacts?limit=50&cursor=eyJpZCI6MjY0ODEsImsiOiJpZCIsImQiOiJkZXNjIn0" \
  -H "Authorization: Bearer $VM_API_KEY"

#Uç bazında yanıt zarfı

Liste alanının adı ve imlecin türü uca göre değişir:

UçListe alanıİmleçSıralimit (vars. / en çok)
GET /contactscontactsnext_cursor, opak metinyeniden eskiye50 / 200
GET /contacts/opted-outcontactsnext_cursor, opak metinyeniden eskiye50 / 200
GET /credit/transactionstransactionsnext_cursor, opak metinyeniden eskiye50 / 200
GET /templatestemplatesnext_cursor, tamsayıyeniden eskiye50 / 100
GET /mediamediapaging.next_cursor, tamsayıyeniden eskiye50 / 100
GET /messagesdatanext_cursor, tamsayıeskiden yeniye50 / 100
GET /callscallsnext_cursoryeniden eskiye50 / 100
GET /flowsflowspaging.after (Meta imleci, after parametresiyle)Meta sırası— / 100
Not GET /media yanıtında imleç iç içe paging nesnesindedir: { "media": [...], "paging": { "limit": 50, "has_more": true, "next_cursor": 13115 } }.
Uyarı İmleci değiştirmeyin ve içeriğine güvenmeyin. Yalnız API'nin döndürdüğü değeri olduğu gibi geri gönderin.

#Tüm kayıtları çekin

const tum = [];
let cursor = null;
do {
  const url = new URL('https://api.verimerkezi.app/wa/contacts');
  url.searchParams.set('limit', '200');
  if (cursor) url.searchParams.set('cursor', cursor);
  const r = await (await fetch(url, { headers: { Authorization: `Bearer ${process.env.VM_API_KEY}` } })).json();
  tum.push(...r.contacts);
  cursor = r.has_more ? r.next_cursor : null;
} while (cursor);
console.log(`${tum.length} kişi`);

#Süzgeçle birlikte

Süzgeçleri (q, status, source vb.) imleçle birlikte kullanabilirsiniz. Tutarlı sonuç için sayfalar boyunca süzgeci değiştirmeyin.

#Önceki sayfa

İmleç tabanlı sayfalama geriye gitmez. "Önceki" düğmesi gerekiyorsa gördüğünüz imleçleri istemci tarafında bir yığında saklayın.

#Mesaj kayıtlarında artımlı okuma

GET /messages, kaçan webhook olaylarını geri almak içindir ve kayıtları eskiden yeniye döndürür. since (en fazla 90 gün geriye) ile başlayın; her sayfadaki next_cursor değerini saklayıp sonraki çağrıda verin. Ayrıntı: Mesaj kayıtlarını listele.

Bu sayfa işinize yaradı mı?

Sorunuz mu var? Destek talebi açın ya da [email protected] adresine yazın.