Freigabe und SMS-Versand per PowerShell
Hallo,
ich versuche eine Script für das automatische Versenden von Dateien per PowerShell zu realisieren.
Um das Passwort per SMS zu versenden, wird das hier im json-Format benötigt:
"textMessageRecipients": [ "string" ]
Leider bekomme ich das mit der eckigen Klammer nicht hin:
$parameter= @{
"nodeId" = "198"
"name" = "2020-05 DRACOON - OnePager ROI.pdf"
"expiration" = @{
"enableExpiration" = $true
"expireAt" = "2020-08-20T21:59:59.490Z"
}
"notes" = ""
"internalNotes" = ""
"textMessageRecipients" = \["0123456789123"\]
"receiverLanguage" = "de-DE"
"password" = "Abc123!1234"
}
#soll -> "textMessageRecipients" = ["0123456789123"]
$out = convertTo-Json $parameter
echo $out
Vieleicht hat ja jemand eine Idee.
Grüße
Manfred Hofmann
-
Offizieller Kommentar
Hi Manfred,
textMessageRecipients is an array. Therefore, you must define textMessageRecipients as an JSON array in PowerShell, see https://stackoverflow.com/questions/40230443/json-array-in-powershell
Kind regards,
MichaelAktionen für Kommentare -
Vielen Dank
Hier nochmal der Code Vollständigkeit halber:
#Authentifizierung an Dracoon
$BaseUrl = "https://123456789.dracoon.cloud"
$APIUrl = $BaseUrl + "/api"
$TokenUrl = $BaseUrl + '/oauth/token'
$Username = "aaa@bbb.de"
$Password = "0815"
$ClientId = "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
$ClientSecret = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
# Login ueber OAuth
$Base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $ClientId,$ClientSecret)))
$Body = @{
"grant_type" = "password"
"username" = $Username
"password" = $Password
}
$Response = Invoke-WebRequest -URI $TokenUrl -Method Post -ContentType "application/x-www-form-urlencoded" -Body $Body -Headers @{Authorization=("Basic {0}" -f $Base64AuthInfo)}
$Content = ConvertFrom-Json $Response.content
$Token = $Content.access_token
#######################
$parameter= @{
nodeId = "123"
password = "passwort"
textMessageRecipients = @(0151123456789)
receiverLanguage = "de-DE"
}
#expiration = @{
# "enableExpiration" = true
# "expireAt" = "2020-08-21T21:59:59.552Z"
# }
$AccountUrl = $APIUrl + "/v4/shares/downloads"
$Response = Invoke-WebRequest -URI $AccountUrl -Method Post -ContentType "application/json" -Headers @{Authorization=("Bearer {0}" -f $Token)} -Body (convertTo-Json $parameter)
$content = ConvertFrom-Json $Response.content
$DracoonCustomerLink = $BaseUrl + "/public/download-shares/" + $content.accessKey
write-host "LOG: DownloadLink -> " $DracoonCustomerLinkGrüße
Manfred Hofmann
-
This use case can be solved by using my published PowerShell module, you may take a look at https://github.com/Callidus2000/Dracoon/blob/master/docs/useCases/Publish-FilesFromCSVwithDracoon.ps1
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
4 Kommentare