Poll (Birleşik)
Mobil Uygulama Entegrasyon Kılavuzu
Poll (Birleşik)
Android servis döngüsü için tercih edilen endpoint. Tek bir POST; heartbeat, pending_messages, get_config ve komut alma çağrılarının ayrı ayrı yapılması ihtiyacını ortadan kaldırır. Arka plan servisinden birkaç saniyede bir çağırın.
Recommended: Use
poll as your primary background-service loop. It replaces pending_messages, heartbeat, get_config, and command fetching in a single request.
İstek Gövdesi (all fields optional)
| Alan | Tür | Açıklama |
|---|---|---|
| service_active | boolean | Arka plan servisi çalışıyorsa true. |
| sms_count | integer | Son sıfırlamadan bu yana gönderilen toplam SMS sayısı. |
| fail_count | integer | Son sıfırlamadan bu yana başarısız olan toplam mesaj sayısı. |
| whatsapp_enabled | boolean | Cihazda WhatsApp bağlıysa true. |
| is_default_sms | boolean | Bu uygulama varsayılan SMS işleyicisiyse true. |
| fcm_token | string | Güncellenmiş FCM token'ı (yalnızca değiştiğinde gönderin). |
| ack_ids | integer[] | Yenileri alınmadan önce onaylanıp silinecek komut ID'lerinin dizisi. |
| sms_limit | integer | Bu yanıtta döndürülecek en fazla SMS öğesi (1-10, varsayılan 1). |
| wa_limit | integer | Bu yanıtta döndürülecek en fazla WhatsApp öğesi (1-10, varsayılan 10). |
Örnek İstek
cURL
curl -X POST "https://api.rcszilla.com/?endpoint=poll" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR-DEVICE-TOKEN" \
-d '{
"service_active": true,
"sms_count": 42,
"fail_count": 1,
"whatsapp_enabled": false,
"is_default_sms": true,
"ack_ids": [88, 89],
"sms_limit": 5,
"wa_limit": 10
}'
Yanıt
JSON200 OK
{
"success": true,
"config": {
"retry_limit": "3",
"poll_interval_seconds": "5"
},
"commands": [
{"id": 90, "command": "restart_service", "payload": null}
],
"sms": [
{
"id": 103,
"channel": "sms",
"phone": "+40712345678",
"message": "Hello!",
"sim_slot": 0,
"device_id": 7,
"campaign_id": null,
"priority": 1,
"scheduled_at": null,
"created_at": "2026-04-29 10:05:00"
}
],
"whatsapp": [],
"ai_config": null
}
Response Fields
| Alan | Tür | Açıklama |
|---|---|---|
| config | object | Key/value device configuration set from the web panel. |
| commands | array | Pending commands for this device. ACK them via ack_ids on the next poll. |
| sms | array | Claimed SMS messages ready to send (same schema as pending_messages). |
| array | Claimed WhatsApp messages ready to send. | |
| ai_config | object|null | WhatsApp Gemini AI configuration (system prompt, keys, model settings). null if not configured. |
Command Payload
| command | Açıklama |
|---|---|
| restart_service | App should restart its background SMS service. |
| set_default_sms | Prompt user to set app as default SMS handler. |
| update_config | Re-fetch config (payload contains changed keys). |
Her poll çağrısında sunucu, 5 dakikadan uzun süredir
processing durumunda takılı kalan mesajları otomatik olarak pending durumuna geri alır. Bu, uygulama çökmelerini manuel müdahale gerektirmeden çözer.Typical Service Loop (Android)
Kotlin (pseudocode)
while (serviceRunning) {
val resp = api.poll(
service_active = true,
sms_count = smsSentTotal,
ack_ids = pendingAckIds
)
pendingAckIds.clear()
for (cmd in resp.commands) handleCommand(cmd)
for (sms in resp.sms) sendSms(sms)
for (wa in resp.whatsapp) sendWhatsApp(wa)
Thread.sleep(pollIntervalMs)
}