implement sending messages
commit
fe23666fc0
@ -0,0 +1,70 @@
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$HomeServer,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$User,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[securestring]
|
||||
$AccessToken
|
||||
)
|
||||
|
||||
function Send-MatrixEvent {
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$RoomId,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$Event,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$EventType
|
||||
)
|
||||
|
||||
#txn_id should be unique per client, so we use timestamp+random
|
||||
$txn_id = '{0}{1}' -f (Get-Date -UFormat '%s'),(Get-Random)
|
||||
|
||||
$uri = '{0}/_matrix/client/r0/rooms/{1}/send/{2}/{3}' -f $HomeServer,$RoomId,$EventType,$txn_id
|
||||
|
||||
$header_splat = @{
|
||||
Authentication = 'Bearer'
|
||||
Token = $AccessToken
|
||||
ContentType = 'application/json'
|
||||
}
|
||||
$http_splat = @{
|
||||
Uri = $uri
|
||||
Method = 'Put'
|
||||
Body = $Event
|
||||
}
|
||||
|
||||
$response = Invoke-RestMethod @header_splat @http_splat
|
||||
if($response.event_id) {
|
||||
Write-Output ('Event {0} sent to room {1}' -f $response.event_id,$RoomId)
|
||||
}
|
||||
}
|
||||
function Send-MatrixNotice {
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$RoomId,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$Message
|
||||
)
|
||||
|
||||
$event = @{
|
||||
msgtype = 'm.notice'
|
||||
body = $Message
|
||||
} | ConvertTo-Json -Compress
|
||||
|
||||
Send-MatrixEvent -RoomId $RoomId -Event $event -EventType 'm.room.message'
|
||||
}
|
||||
|
||||
Send-MatrixNotice -RoomId '!amKUIaaKdERatZsJgB:matrix.org' -Message ('asef :) {0}' -f (Get-Date))
|
Loading…
Reference in New Issue