Tarkibga o'tish

Bildirishnomalar API

Barcha endpointlar Authorization: Bearer <token> talab qiladi.


Bildirishnomalar ro'yxati

GET /api/v1/notifications?limit=20&offset=0
Authorization: Bearer <token>
Parametr Tavsif
limit Soni (standart: 20, maks: 50)
offset Bosqichma-bosqich yuklash uchun

Javob:

{
  "ok": true,
  "notifications": [
    {
      "id": 300,
      "type": "post_like",
      "is_read": false,
      "actor": {
        "id": 55,
        "username": "vali5678",
        "avatar_url": null
      },
      "target": {
        "type": "post",
        "id": 100,
        "title": "Python 3.13 yangiliklari"
      },
      "count": 3,
      "created_at": "2026-06-11T10:00:00Z"
    }
  ],
  "unread_count": 5
}

Bildirishnoma turlari

type Tavsif
post_like Postingizga layk qo'yildi
comment Postingizga sharh yozildi
reply Sharhingizga javob berildi
follow Kimdir streamingizni kuzata boshladi
follow_request Yopiq streamingizga kuzatish so'rovi
follow_approved Kuzatish so'rovingiz qabul qilindi
message Yangi xabar (faqat soni ko'rsatiladi, matn emas)

O'qilmagan bildirishnomalar soni

GET /api/v1/notifications/unread-count
Authorization: Bearer <token>

Javob:

{
  "ok": true,
  "unread_count": 5,
  "message_unread_count": 2
}

Bu endpointni badge yangilash uchun muntazam so'rash mumkin (tavsiya: 30-60 soniyada bir marta).


Hammasini o'qilgan deb belgilash

POST /api/v1/notifications/read-all
Authorization: Bearer <token>

Bildirishnoma sozlamalari

Ko'rish

GET /api/v1/notifications/preferences
Authorization: Bearer <token>

Javob:

{
  "ok": true,
  "preferences": {
    "enabled": true,
    "quiet_mode": false,
    "likes": true,
    "comments": true,
    "follows": true,
    "messages": true
  }
}

Yangilash

PUT /api/v1/notifications/preferences
Authorization: Bearer <token>
Content-Type: application/json
{
  "enabled": true,
  "quiet_mode": false,
  "likes": true,
  "comments": true,
  "follows": false,
  "messages": true
}

Push bildirishnomalar (Android FCM)

Android ilovasida push bildirishnomalar olish uchun FCM token ro'yxatdan o'tkazish kerak:

POST /api/v1/profile/fcm-token
Authorization: Bearer <token>
Content-Type: application/json
{ "token": "firebase_device_token" }

Push xabari tuzilishi:

{
  "notification": {
    "title": "Ali Valiyev",
    "body": "Postingizga layk qo'ydi"
  },
  "data": {
    "type": "post_like",
    "post_id": "100"
  }
}

Qo'ng'iroq uchun alohida data-only xabar yuboriladi (type: "incoming_call").