-
Notifications
You must be signed in to change notification settings - Fork 1
Externe Server
Marc Staebler edited this page Mar 25, 2026
·
6 revisions
Mit ExternalServerAccess kann deine UserApp HTTP-Requests an externe APIs senden – zum Beispiel für Wetterdaten, KI-Dienste, Datenbanken oder Webhooks.
var extServer = KnuddelsServer.getExternalServerAccess();extServer.getAllAccessibleDomains(); // Verfügbare Domains abrufen
extServer.getURL('https://api.example.com/data', {
onSuccess: function(responseData, externalServerResponse) {
var statusCode = externalServerResponse.getResponseCode();
KnuddelsServer.getDefaultLogger().info('Antwort: ' + responseData);
},
onFailure: function(responseData, externalServerResponse) {
KnuddelsServer.getDefaultLogger().error('Fehler: ' + responseData);
}
});extServer.postURL('https://api.example.com/submit', {
data: { name: 'Test', value: 42 },
onSuccess: function(responseData, externalServerResponse) {
var result = JSON.parse(responseData);
// Ergebnis verarbeiten...
},
onFailure: function(responseData, externalServerResponse) {
KnuddelsServer.getDefaultLogger().error('POST fehlgeschlagen');
}
});extServer.postURL('https://api.example.com/data', {
data: { query: 'test', format: 'json' },
onSuccess: function(responseData) {
// ...
},
onFailure: function(responseData) {
// ...
}
});Hinweis: Der
data-Parameter erwartet ein JSON-Objekt, keinen String. DiepostURL-Methode unterstützt keinenheaders-Parameter.
Externe Requests sind nur an freigegebene Domains möglich. Welche Domains für deine App freigeschaltet sind, kannst du programmatisch abfragen. Für eigene Domains muss eine Freigabe beantragt werden.
// Alle freigegebenen Domains auflisten
var domains = extServer.getAllAccessibleDomains();// Innerhalb von var App = { ... };
chatCommands: {
wetter: function(user, params, command) {
if (!params || params.trim().length === 0) {
user.sendPrivateMessage('Bitte gib eine Stadt an: /wetter Berlin');
return;
}
var stadt = params.trim();
var extServer = KnuddelsServer.getExternalServerAccess();
extServer.getURL('https://api.example.com/weather?city=' + encodeURIComponent(stadt), {
onSuccess: function(responseData) {
var daten = JSON.parse(responseData);
user.sendPrivateMessage(
'Wetter in ' + stadt + ': ' + daten.temp + '°C, ' + daten.description
);
},
onFailure: function() {
user.sendPrivateMessage('Konnte Wetterdaten für ' + stadt + ' nicht abrufen.');
}
});
}
},- ExternalServerAccess – HTTP-Zugriff
- ExternalServerResponse – Response-Objekt
- Domain – Domain-Informationen
- WebHookAccess – WebHook-Verwaltung (Beta)
- Erste Schritte – Voraussetzungen, Einrichtung, deine erste App
-
Projektstruktur – Dateien, Ordner und
app.config - Dev-Server – Entwicklungsumgebung und Testen
-
App-Lifecycle und Hooks –
onAppStart,onUserJoinedund Co. -
Server-API Grundlagen –
KnuddelsServer,Channel,Logger - Client-Server-Kommunikation – Events zwischen Frontend und Backend
-
Benutzer und Nachrichten –
User,BotUser, Nachrichten senden - HTML-UI und AppContent – Popups, Overlays, Globale Apps-UI
-
Datenspeicherung –
AppPersistence,UserPersistence -
Knuddel und Zahlungen – Transfers, Käufe,
KnuddelAccount - Toplisten – Ranglisten und Highscores
- Globale Apps – Apps im "Apps & Spiele"-Menü
- Quests – Aufgaben für Nutzer
- Externe Server-Kommunikation – HTTP-Requests an externe APIs
- Tutorials – Übersicht aller Tutorials
- Tic-Tac-Toe – Multiplayer-Spiel mit Bestenliste
- Best Practices – Tipps, Limits und häufige Fehler
- FAQ – Häufig gestellte Fragen
- KCode-Formatierung – Nachrichten-Formatierung mit KCode