2016-03-27 18 views
0

私はpowershellを使用してO365 'Incoming Webhook'に簡単なメッセージを投稿しようとしています。ここでは、コードは次のようになります。Powershellを使用してOffice365グループコネクタ(Webhook)に投稿

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

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

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

しかし、このエラーが出る:

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 : {} 

私は-Contentypeパラメータを省略する場合、私はこのエラーを取得:

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 

誰にこれを取得する方法を知っています作業?

答えて

0

「text」フィールドの後にコンマがないため、メッセージ本文が有効なjsonスニペットではありません。

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

に変更し、それが私のために動作します。

+0

礼儀正しくはありませんでしたが、訂正後もエラーが表示されます - 'Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:AADSTS90002:リクエストされたテナント識別子 '00000000-0000-0000- 0000-000000000000 'は無効です。テナントIDは空のGUIDではないかもしれません.' ......... UR1に既に存在するはずのテナント識別子を指定して、なぜそれを無視しているのかわからないように思えます。 – Kiran

+0

ここにURLを投稿できますか? –

+0

...私はいつもこれを削除できます:).... 'https://outlook.office365.com/webhook/[email protected]e9cbadb5/IncomingWebhook/7c40ff0aaf1545b49b57674f121f8c52/d85a6489-1f65-4ca3-8e29-6dc37fde9985 ' – Kiran

1

ご指摘いただきありがとうございます。私はAzure WebHookをテストしようとしていました。それはWebページのTestメソッドで動作します。 JSON本体をページからpowershellにコピーしても機能しませんでした。キーは明らかにしかし、私は興味深い発見何かが、チーム内ウェブフックは、「アプリケーション/ x-www-form-urlencodedで」デフォルトのコンテンツタイプ(と作業を行うということです

-ContentType "application/json" 

を指定しました彼らのために

Use WebHooks Connect to Send Data from PowerShell to Microsoft Teams

ニースのショートカットを、しかし、ウェブフックが安全であるためには、常にコンテンツタイプを指定するのが最良になります。)例のポストとしてステファン・ストレンジャーが投稿しました。

関連する問題