Sherlock Agent Mobil
Kullanıcılarınızın Sherlock mobil uygulamasını (Sherlock Agent) en son ne zaman kullandığını ve uygulamaya ulaşan bildirimleri sorgulamak için iki uç nokta. İki uç da yalnız API anahtarınızın firmasına ait kullanıcıları döndürür. userId, Sherlock kullanıcı ID'sidir (Odoo kullanıcı ID'si).
Bu bölümdeki uç noktalar
| Metot | Uç Nokta | Açıklama |
|---|---|---|
| GET | /users/{userId}/mobile-last-seen | Mobil uygulamanın son kullanımı |
| GET | /users/{userId}/notifications | Mobil uygulamaya ulaşan bildirimler |
1. Mobil Son Görülme
Kullanıcının mobil uygulamayı en son ne zaman kullandığını, o andaki uygulama sürümünü ve IP adresini döndürür.
GET /api/v1/users/{userId}/mobile-last-seen
Örnek İstek
curl "https://sherlock.sanalsantral.com.tr/api/v1/users/1234/mobile-last-seen" \
-H "X-API-Key: sk_live_xxx"
Başarılı Yanıt (200)
{
"success": true,
"data": {
"userId": 1234,
"lastSeenAt": "2026-10-02T10:42:05.000Z",
"appVersion": "1.0.51",
"ip": "203.0.113.10",
"mobileOS": "android",
"osVersion": "14",
"pushRegistered": true
}
}
| Alan | Açıklama |
|---|---|
| lastSeenAt | Uygulamanın en son kullanıldığı an (UTC, ISO 8601). Hiç kullanılmadıysa null. |
| appVersion | O andaki uygulama sürümü. |
| ip | O isteğin geldiği IP adresi. |
| mobileOS | ios / android |
| osVersion | İşletim sistemi sürümü: Android'de 14, iOS'ta 17.5 gibi. Uygulamanın eski sürümlerinde null. |
| pushRegistered | Cihaz çağrı bildirimi alacak şekilde kayıtlı mı. Kullanıcı mobil uygulamadan çıkış yapınca false olur. |
> Son görülme ne zaman güncellenir: uygulamaya giriş yapıldığında, uygulama açıldığında ya da öne geldiğinde, uygulama açıkken 5 dakikada bir ve bir çağrı karşılandığında. Uygulama kapalıyken bildirimle gelen ama karşılanmayan çağrı sayılmaz.
Hatalar
| HTTP | Durum | Yanıt |
|---|---|---|
| 400 | Geçersiz kullanıcı ID'si | { "success": false, "error": "Invalid user id" } |
| 404 | Kullanıcı yok / başka firmaya ait | { "success": false, "error": "User not found" } |
2. Mobil Bildirimler
Kullanıcının mobil uygulamasına ulaşan push bildirimlerini döndürür. Kayıt, uygulama bildirimi aldığını Sherlock'a bildirdiğinde oluşur; gönderilip cihaza ulaşmayan bildirim listede görünmez.
GET /api/v1/users/{userId}/notifications
Sorgu Parametreleri
| Parametre | Açıklama |
|---|---|
| from, to | ISO 8601, bildirimin alındığı ana göre. Verilmezse son 7 gün. |
| limit | Varsayılan 50, en fazla 200. En yeni kayıt önce gelir. |
Örnek İstek
curl "https://sherlock.sanalsantral.com.tr/api/v1/users/1234/notifications?from=2026-10-01T00:00:00Z&limit=20" \
-H "X-API-Key: sk_live_xxx"
Başarılı Yanıt (200)
{
"success": true,
"data": [
{
"messageId": "0:1727860000000000%abc",
"type": "incoming_call",
"transport": "fcm",
"title": null,
"callId": "1727860000.123",
"receivedAt": "2026-10-02T09:15:03.000Z",
"reportedAt": "2026-10-02T09:15:03.000Z",
"appState": "background",
"handler": "fcm-background",
"appVersion": "1.0.51",
"mobileOS": "android",
"ip": "203.0.113.10"
}
],
"range": { "from": "2026-10-01T00:00:00.000Z", "to": "2026-10-02T10:00:00.000Z", "limit": 20 }
}
| Alan | Açıklama |
|---|---|
| messageId | Bildirimin kimliği (FCM mesaj kimliği ya da iOS çağrı bildirimi kimliği). |
| type | Bildirim tipi: incoming_call (gelen çağrı), görev bildirimleri vb. |
| transport | fcm ya da apns-voip (iOS gelen çağrı). |
| title | Bildirim başlığı (varsa). |
| callId | Çağrı bildirimlerinde santral çağrı kimliği. |
| receivedAt | Cihazın bildirimi aldığı an (UTC). fcm-opened / fcm-initial kayıtlarında dokunma anıdır (aşağıya bakın). |
| reportedAt | Kaydın Sherlock'a ulaştığı an (UTC). |
| appState | Bildirim geldiğinde uygulama: foreground (açık), background (arka planda), killed (kapalıydı, bildirim açtı), unknown. |
| handler | Bildirimin uygulamaya ulaştığı yol (aşağıdaki tablo). |
| appVersion, mobileOS, ip | Uygulama sürümü, işletim sistemi ve kaydın geldiği IP adresi. |
handler değerleri
| handler | Ne zaman |
|---|---|
| fcm-foreground | Uygulama açıkken gelen bildirim. |
| fcm-background | Uygulama arka plandayken ya da kapalıyken gelen bildirim (Android; iOS'ta sessiz bildirim). |
| fcm-opened | Kullanıcı sistem bildirimine dokundu, uygulama arka plandaydı. |
| fcm-initial | Kullanıcı sistem bildirimine dokundu ve bu dokunuş kapalı uygulamayı açtı. |
| voip-push | iOS gelen çağrı bildirimi (transport: apns-voip). |
> Dikkat edilecekler: iOS, arka plandaki uygulamaya gelen bazı bildirimleri (ör. görev bildirimi) uygulamayı uyandırmadan gösterir; uygulama bildirimi ancak kullanıcı dokununca görür. Bu yüzden fcm-opened / fcm-initial kayıtlarında receivedAt gerçek alma anı değil dokunma anıdır, yani alma anının üst sınırıdır. Uygulama çevrimdışıyken aldığı bildirimleri sonradan toplu bildirir; bu yüzden receivedAt ile reportedAt farklı olabilir. Kayıtlar 30 gün saklanır.
Hatalar
| HTTP | Durum | Yanıt |
|---|---|---|
| 400 | Geçersiz kullanıcı ID'si ya da tarih | { "success": false, "error": "Invalid user id" } |
| 404 | Kullanıcı yok / başka firmaya ait | { "success": false, "error": "User not found" } |