NEWS
einfacher Matrix Chat Client
-
Hallo,
ich habe mit Hilfe der "matrix-js-sdk" ein einfaches Typescript erstellt was Nachrichten in einen Raum
innerhalb des matrix.org Netzwerk schickennamespace matrixClient { const matrixJsSdk = require('matrix-js-sdk') const configPrefix:string = '0_userdata.0.matrix' const serverUrl:string = getState(configPrefix + 'Url'/*matrixUrl*/).val const testRoomId:string = getState(configPrefix + 'Room'/*matrixRoom*/).val const loginData:object = JSON.parse(getState(configPrefix + 'Login'/*matrixLogin*/).val) const matrixMessage: string = 'matrixMessage' const eventType:string = 'm.room.message' const messageType:string = 'm.text' const matrixClient = matrixJsSdk.createClient(serverUrl) const eventReceiverCallback = function(event, room, toStartOfTimeline):void { if (event.getType() != eventType && event.getRoomId() != testRoomId && event.getContent().msgtype != messageType) { return; } log(event.getContent().body) } const sendMessageToMatrix = function (data: string): any { const content: object = { "msgtype": messageType, "body": data } matrixClient.sendEvent(testRoomId, eventType, content, "").then((res) => { }).catch((err) => { log(err) }) return(Date.now()) } onStop(() => { onMessageUnregister(matrixMessage) matrixClient.stopClient() matrixClient.logout() }) matrixClient.login("m.login.password", loginData).then((response) => { // matrixClient.initCrypto() matrixClient.startClient() matrixClient.once('sync', function (state, prevState, res) { console.log(state) // state will be 'PREPARED' when the client is ready to use matrixClient.on("Room.timeline", eventReceiverCallback) onMessage(matrixMessage, sendMessageToMatrix) }) }) }zum Senden über diesen Client benutze ich die folgende Funktion, die bei mir in global liegt und damit allen scripts zur Verfügung steht
/** * send message to matrix messager * * @param message Message to send */ const sendMessageToMatrix = function(message:string, prefix:string = scriptName + ": ") { if(isScriptActive('script.js.test.matrix-client')) { messageTo('matrixMessage', prefix + message) } }Vielleicht kann jemand etwas damit angefangen
VG,
powo01 -
Hallo,
ich habe mit Hilfe der "matrix-js-sdk" ein einfaches Typescript erstellt was Nachrichten in einen Raum
innerhalb des matrix.org Netzwerk schickennamespace matrixClient { const matrixJsSdk = require('matrix-js-sdk') const configPrefix:string = '0_userdata.0.matrix' const serverUrl:string = getState(configPrefix + 'Url'/*matrixUrl*/).val const testRoomId:string = getState(configPrefix + 'Room'/*matrixRoom*/).val const loginData:object = JSON.parse(getState(configPrefix + 'Login'/*matrixLogin*/).val) const matrixMessage: string = 'matrixMessage' const eventType:string = 'm.room.message' const messageType:string = 'm.text' const matrixClient = matrixJsSdk.createClient(serverUrl) const eventReceiverCallback = function(event, room, toStartOfTimeline):void { if (event.getType() != eventType && event.getRoomId() != testRoomId && event.getContent().msgtype != messageType) { return; } log(event.getContent().body) } const sendMessageToMatrix = function (data: string): any { const content: object = { "msgtype": messageType, "body": data } matrixClient.sendEvent(testRoomId, eventType, content, "").then((res) => { }).catch((err) => { log(err) }) return(Date.now()) } onStop(() => { onMessageUnregister(matrixMessage) matrixClient.stopClient() matrixClient.logout() }) matrixClient.login("m.login.password", loginData).then((response) => { // matrixClient.initCrypto() matrixClient.startClient() matrixClient.once('sync', function (state, prevState, res) { console.log(state) // state will be 'PREPARED' when the client is ready to use matrixClient.on("Room.timeline", eventReceiverCallback) onMessage(matrixMessage, sendMessageToMatrix) }) }) }zum Senden über diesen Client benutze ich die folgende Funktion, die bei mir in global liegt und damit allen scripts zur Verfügung steht
/** * send message to matrix messager * * @param message Message to send */ const sendMessageToMatrix = function(message:string, prefix:string = scriptName + ": ") { if(isScriptActive('script.js.test.matrix-client')) { messageTo('matrixMessage', prefix + message) } }Vielleicht kann jemand etwas damit angefangen
VG,
powo01@powo01 Cool, was du da programmiert hast! Wärst du bereit, daraus einen Adapter zu machen? Das ist absolut kein Hexenwerk. Damit könnten andere ohne grossen Aufwand (und Programmierkenntnisse) den Chat Client auch verwenden.
Falls du Tipps brauchst oder Fragen hast zur Adapter Entwicklung, stell sie einfach hier; es findet sich immer jemand, der deine Fragen beantworten kann.
-
Hallo, da ich diesen Artikel merhmals bei Google gefunden habe, wollte ich an dieser Stelle fragen.
Gibt es einen ausgereiften MatrixChat Adapter? Weil dann würde ich auf Telegram verzichten und mir Nachrichten vom SmartHome selber darüber senden.
Ich frage hier, weil dann vermutlich viele andere das ebenfalls über Google finden werden und noch besser weiterwissen.
PS: Naja, wer Matrix im Adapter Fenster reingibt, findet sofort: =D

Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden