API-Dokumentation
Integrieren Sie NodeCoreX mit lokalen Geräte-APIs (Port 5200) und Remote-Server-APIs. Remote-Anfragen erfordern eine SHA-256-Signatur aus Konto, Passwort, Maschinencode und Zeitstempel.
Lokale Geräte-API
Basis-URL: http://localhost:5200
http://localhost:5200/nodes/count Knotenanzahl abrufen
Rufen Sie die Gesamtzahl der Anzeigenknoten ab, die auf dem aktuellen Gerät ausgeführt werden.
{
"success": true,
"count": 4
} {
"success": false,
"message": "Service unavailable"
} http://localhost:5200/nodes/list Knotenindexliste abrufen
Rufen Sie die Liste aller Knotenindizes für nachfolgende Vorgänge nach Index ab.
{
"success": true,
"nodeIndexes": [
0,
1,
2,
3
]
} {
"success": false,
"message": "Failed to list nodes"
} http://localhost:5200/nodes/status Knotenstatus abrufen
Rufen Sie den Ausführungsstatus jedes Knotens ab (wird ausgeführt, gestoppt, Fehler usw.).
{
"success": true,
"statuses": [
{
"index": 0,
"status": "running",
"uptime": 3600
},
{
"index": 1,
"status": "stopped",
"uptime": 0
},
{
"index": 2,
"status": "error",
"message": "Proxy timeout"
}
]
} {
"success": false,
"message": "Unable to read node status"
} http://localhost:5200/nodes/{nodeIndex}/start Starten Sie einen Knoten
Starten Sie den Anzeigenwiedergabeknoten für den angegebenen Knotenindex.
-
nodeIndex(path) — Knotenindex (0-basiert)
{
"success": true,
"message": "Node started",
"index": 0
} {
"success": false,
"message": "Invalid node index or already running"
} http://localhost:5200/nodes/{nodeIndex}/stop Stoppen Sie einen Knoten
Stoppen Sie den Anzeigenwiedergabeknoten für den angegebenen Knotenindex.
-
nodeIndex(path) — Knotenindex (0-basiert)
{
"success": true,
"message": "Node stopped",
"index": 0
} {
"success": false,
"message": "Invalid node index or already stopped"
} http://localhost:5200/nodes/{nodeIndex}/proxy Proxy für einen Knoten festlegen
Konfigurieren Sie die Proxy-Verbindung (Host, Port, Authentifizierung usw.) für den angegebenen Knotenindex.
-
nodeIndex(path) — Knotenindex -
ip(body) — Proxy-Endpunkt -
port(body) — Proxy-Port -
username(body) — Proxy-Benutzername (optional) -
password(body) — Proxy-Passwort (optional)
{
"ip": "127.0.0.1",
"port": 7890,
"username": null,
"password": null
} {
"success": true,
"message": "Proxy updated",
"index": 0
} {
"success": false,
"message": "Invalid proxy or connection failed"
} http://localhost:5200/device/info Geräteinformationen abrufen
Erhalten Sie grundlegende Geräteinformationen wie Maschinencode, Modell und Version.
{
"success": true,
"machineCode": "PM-XXXX-YYYY",
"model": "Standard",
"version": "1.0.0",
"firmware": "1.2.3"
} {
"success": false,
"message": "Node info unavailable"
} http://localhost:5200/device/health Überprüfung des Gerätezustands
Überprüfen Sie, ob der lokale Dienst ausgeführt wird. kann für Heartbeat-Berichte verwendet werden.
{
"success": true,
"healthy": true,
"uptime": 3600,
"nodesActive": 4
} {
"success": false,
"healthy": false,
"message": "Service unhealthy"
} Remote-Server-API
Basis-URL: Ihr Plattform-API-Host (siehe App-Konsole für umgebungsspezifische Endpunkte).
/api/device/ads Anzeigenaufgabenliste abrufen
Erhalten Sie Anzeigenquellenseiten, Anzeigentypen, Anzeigen-IDs, Wiedergabe-URLs und zugehörige Inhalte.
-
sign(query) erforderlich — Unterschrift; siehe Zeichenalgorithmus unten -
machineCode(query) erforderlich — Hardware-Gerätecode -
timestamp(query) erforderlich — Zeitstempel der Anfrage (Sekunden)
{
"success": true,
"data": {
"ads": [
{
"id": "ad-001",
"adType": "Video",
"source": "example.com",
"sourceUrl": "https://example.com/campaign/1",
"playUrl": "https://cdn.example.com/ad-001",
"duration": 30,
"rewardPerView": 0.001
}
]
}
} {
"success": false,
"message": "Invalid sign or expired timestamp",
"code": "AUTH_FAILED"
} /api/device/earnings Erhalten Sie Einnahmen nach Knoten oder Gerät
Erhalten Sie Verdienstdetails oder eine Zusammenfassung nach Gerätecode und optionalem Knotenindex.
-
sign(query) erforderlich — Unterschrift -
machineCode(query) erforderlich — Gerätecode -
timestamp(query) erforderlich — Zeitstempel -
nodeIndex(query) — Knotenindex; für geräteweite Einnahmen weglassen -
startDate(query) — Startdatum JJJJ-MM-TT -
endDate(query) — Enddatum JJJJ-MM-TT
{
"success": true,
"data": {
"totalPoints": 1200,
"currency": "points",
"details": [
{
"date": "2025-03-01",
"nodeIndex": 0,
"points": 300,
"adCount": 120
},
{
"date": "2025-03-01",
"nodeIndex": 1,
"points": 280,
"adCount": 115
}
]
}
} {
"success": false,
"message": "Node not found or access denied",
"code": "FORBIDDEN"
} /api/device/heartbeat Geräte-Herzschlag
Melden Sie regelmäßig den Online-Status des Geräts und den Knotenlaufstatus.
-
sign(query) erforderlich — Unterschrift -
machineCode(query) erforderlich — Gerätecode -
timestamp(query) erforderlich — Zeitstempel
{
"nodeStatuses": [
{
"index": 0,
"status": "running",
"uptime": 3600
},
{
"index": 1,
"status": "running",
"uptime": 3600
},
{
"index": 2,
"status": "stopped",
"uptime": 0
}
],
"deviceHealthy": true
} {
"success": true,
"message": "Heartbeat received",
"nextReportIn": 60
} {
"success": false,
"message": "Invalid sign or machineCode",
"code": "AUTH_FAILED"
} /api/device/config Gerätekonfiguration abrufen
Rufen Sie die Ausführungskonfiguration für das Gerät ab (z. B. Aufgabenintervall, Regionsgrenzen).
-
sign(query) erforderlich — Unterschrift -
machineCode(query) erforderlich — Gerätecode -
timestamp(query) erforderlich — Zeitstempel
{
"success": true,
"data": {
"taskInterval": 30,
"allowedRegions": [
"US",
"GB",
"DE"
],
"maxConcurrentAds": 4,
"reportInterval": 60
}
} {
"success": false,
"message": "Invalid sign or node",
"code": "AUTH_FAILED"
} Vorzeichenalgorithmus
Remote-API-Anfragen erfordern Query-Parameter sign, machineCode, und timestamp.
sign = SHA256(account + password + machineCode + timestamp)