Я пытаюсь отправить сообщения с вложениями через Powershell в Cisco Team Room / Space. Я нашел пример кода для отправки текстовых сообщений, который работает нормально:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
#secure token of Webex bot
$Ciscobottoken = "TOKEN-PLACEHOLDER"
#roomID of destination in Webex Teams
$roomID= "ROOM-ID-PLACEHOLDER"
$body = @{
roomId=$roomID
text="Hello World"
}
$json=$body | ConvertTo-Json
Invoke-RestMethod -Method Post `
-Headers @{"Authorization"="Bearer $Ciscobottoken"} `
-ContentType "application/json" -Body $json `
-Uri "https://api.ciscospark.com/v1/messages"
Теперь я попытался расширить код с помощью документации Cisco (https://developer.webex.com/docs/api/basics), чтобы иметь возможность отправлять файлы также. К сожалению, примеры кода предназначены только для cURL и Python. Я не смог преобразовать это в Powershell. Я попытался добавить параметр "files" в тело:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
#secure token of Webex bot
$Ciscobottoken = "TOKEN-PLACEHOLDER"
#roomID of destination in Webex Teams
$roomID= "ROOM-ID-PLACEHOLDER"
$body = @{
roomId=$roomID
text="Hello World"
files='C:\temp\Test.png'
}
$json=$body | ConvertTo-Json
Invoke-RestMethod -Method Post `
-Headers @{"Authorization"="Bearer $Ciscobottoken"} `
-ContentType "application/json" -Body $json `
-Uri "https://api.ciscospark.com/v1/messages"
Я также попытался указать тип:
files='C:\temp\Test.png;type=image/png'
Я всегда получаю следующую ошибку:
Invoke-RestMethod : {"message":"One (or more) of the arguments is invalid.","errors":[{"description":"One (or more) of the arguments is
invalid."}],"trackingId":"ROUTER_5EA96653-3CD3-01BB-00C5-1F0DAD3400C5"}
In C:\Scripts\Teams-API.ps1:40 Zeichen:1
+ Invoke-RestMethod -Method Post `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Может кто-нибудь помочь мне с этой проблемой?
Спасибо
Пьер