Ana içeriğe geç

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

MetotUç NoktaAçıklama
GET/users/{userId}/mobile-last-seenMobil uygulamanın son kullanımı
GET/users/{userId}/notificationsMobil 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
}
}
AlanAçıklama
lastSeenAtUygulamanın en son kullanıldığı an (UTC, ISO 8601). Hiç kullanılmadıysa null.
appVersionO andaki uygulama sürümü.
ipO isteğin geldiği IP adresi.
mobileOSios / android
osVersionİşletim sistemi sürümü: Android'de 14, iOS'ta 17.5 gibi. Uygulamanın eski sürümlerinde null.
pushRegisteredCihaz ç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​

HTTPDurumYanıt
400Geçersiz kullanıcı ID'si{ "success": false, "error": "Invalid user id" }
404Kullanı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​

ParametreAçıklama
from, toISO 8601, bildirimin alındığı ana göre. Verilmezse son 7 gün.
limitVarsayı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 }
}
AlanAçıklama
messageIdBildirimin kimliği (FCM mesaj kimliği ya da iOS çağrı bildirimi kimliği).
typeBildirim tipi: incoming_call (gelen çağrı), görev bildirimleri vb.
transportfcm ya da apns-voip (iOS gelen çağrı).
titleBildirim başlığı (varsa).
callIdÇağrı bildirimlerinde santral çağrı kimliği.
receivedAtCihazın bildirimi aldığı an (UTC). fcm-opened / fcm-initial kayıtlarında dokunma anıdır (aşağıya bakın).
reportedAtKaydın Sherlock'a ulaştığı an (UTC).
appStateBildirim geldiğinde uygulama: foreground (açık), background (arka planda), killed (kapalıydı, bildirim açtı), unknown.
handlerBildirimin uygulamaya ulaştığı yol (aşağıdaki tablo).
appVersion, mobileOS, ipUygulama sürümü, işletim sistemi ve kaydın geldiği IP adresi.

handler değerleri

handlerNe zaman
fcm-foregroundUygulama açıkken gelen bildirim.
fcm-backgroundUygulama arka plandayken ya da kapalıyken gelen bildirim (Android; iOS'ta sessiz bildirim).
fcm-openedKullanıcı sistem bildirimine dokundu, uygulama arka plandaydı.
fcm-initialKullanıcı sistem bildirimine dokundu ve bu dokunuş kapalı uygulamayı açtı.
voip-pushiOS 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​

HTTPDurumYanıt
400Geçersiz kullanıcı ID'si ya da tarih{ "success": false, "error": "Invalid user id" }
404Kullanıcı yok / başka firmaya ait{ "success": false, "error": "User not found" }