انتقل للمحتوى

    عربي أو إنجليزي · ↑↓ للتنقل · Enter للفتح · Esc للقفل

    English
    في الصفحة دي

    التقسيم لصفحات

    كل القوايم بتتقسم بـ cursor: ‎?limit=‎ و ‎?cursor=‎ والرد { data, nextCursor }.

    القوايم بترجع الأحدث الأول، صفحة صفحة:

    GET /v2/messages?limit=2
    {
      "data": [
        {
          "id": "3EB0A1B2C3D4E5F60718",
          "status": "read"
        },
        {
          "id": "3EB0C9D8E7F6A5B40312",
          "status": "delivered"
        }
      ],
      "nextCursor": "eyJ0IjoiMjAyNi0xMC0xM1QwODowMDowMC4wMDBaIn0"
    }
    البارامترالمعنى
    limitالمعنىمن 1 لـ 100، الافتراضي 25 (مستلمي الحملة: 1–500، الافتراضي 50). غير كده 400 PAGINATION_LIMIT_INVALID.
    cursorالمعنىالـ nextCursor من الصفحة اللي قبلها زي ما هو. أي تعديل فيه بيرد 400 PAGINATION_CURSOR_INVALID.

    nextCursor: null معناها إنك وصلت لآخر صفحة. الـ cursor مقفول: متبنيهوش ومتفكهوش. العناصر اللي بتتضاف وانت بتقلّب مش بتزحزح أو تكرر الصفحات الجاية.

    قراءة كل الصفحات

    Python
    import os, requests
    
    def all_messages(**filters):
        cursor = None
        while True:
            params = {"limit": 100, **filters, **({"cursor": cursor} if cursor else {})}
            res = requests.get("https://mursilat.com/api/v2/messages",
                               headers={"Authorization": f"Bearer {os.environ['WASLA_API_KEY']}"},
                               params=params, timeout=30)
            res.raise_for_status()
            page = res.json()
            yield from page["data"]
            cursor = page["nextCursor"]
            if not cursor:
                break