2016-03-27 10 views
0

Ich versuche, eine einfache Nachricht an einen O365 "Incoming Webhook" mit Powershell zu posten. Hier ist der Code:Post zu Office365 Group Connector (Webhook) mit Powershell

$url = 'https://outlook.office365.com/webhook/.......' 

$body = @" 
{ 
    "text": "Hello World!" 
    "title": "Today" 
} 
"@ 

Invoke-RestMethod -Uri $url -Method Post -Body $body -ContentType "application/json" 

Aber diesen Fehler:

PSMessageDetails  : 
Exception    : System.Net.WebException: The remote server returned an error: (404) Not Found. 
          at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request) 
          at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord() 
TargetObject   : System.Net.HttpWebRequest 
CategoryInfo   : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException 
FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand 
ErrorDetails   : Invalid webhook request 
InvocationInfo  : System.Management.Automation.InvocationInfo 
ScriptStackTrace  : at <ScriptBlock>, <No file>: line 10 
PipelineIterationInfo : {} 

wenn ich die -Contentype Parameter auslassen erhalte ich diese Fehlermeldung:

Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: AADSTS90002: Requested tenant identifier '00000000-0000-0000-0000-000000000000' is not valid. Tenant identifiers may not be an empty GUID. 
Trace ID: c4b77459-3915-475e-8125-fa2db9fd11e8 
Correlation ID: 0ba64202-db52-4a96-8f44-a87b7f009170 
Timestamp: 2016-03-27 07:48:02Z 

Wer weiß, wie diese zu erhalten, Arbeit?

Antwort

0

Ihr Nachrichtentext ist kein gültiges JSON-Snippet aufgrund eines fehlenden Kommas nach dem Feld "Text".

geändert zu

$body = @" 
{ 
    "text": "Hello World!", 
    "title": "Today" 
} 
"@ 

und es funktioniert für mich.

+0

danke für die Antwort ... yup, das war eine dumme Unterlassung, aber selbst nach der Korrektur bekomme ich immer noch den Fehler - 'Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: AADSTS90002: Angeforderte Mandantenkennung '00000000-0000-0000- 0000-000000000000 'ist nicht gültig. Mieterbezeichner dürfen keine leere GUID sein. "........ scheint, dass ich einen" Mieterbezeichner "angeben soll, der bereits in der URL sein sollte, also nicht sicher, warum er es ignoriert. – Kiran

+0

Könnten Sie die URL hier posten? –

+0

sicher ... ich kann immer löschen:) .... 'https: //outlook.office365.com/webhook/[email protected]e9cbadb5/IncomingWebhook/7c40ff0aaf1545b49b57674f121f8c52/d85a6489-1f65-4ca3-8e29-6dc37fde9985 ' – Kiran

1

Vielen Dank für die Richtung. Ich habe versucht, ein Azure WebHook zu testen. Es würde mit der Testmethode der Webseite funktionieren; kopierte sogar den JSON-Body von der Seite in die Powershell und es würde nicht funktionieren. Der Schlüssel war offenbar die

-ContentType "application/json" 

Angabe jedoch etwas, das ich interessant fand, ist, dass WebHooks in Teams tun Arbeit mit dem Standardinhaltstyp (die "application/x-www-form-urlencoded") als Beispiel Post Stefan Fremder posted:

Use WebHooks Connect to Send Data from PowerShell to Microsoft Teams

Nizza Abkürzung für sie, aber sieht am besten immer den Inhaltstyp angeben, für WebHooks sicher zu sein.