Edited at

Microsoft Teams に PowerShell で投稿してみる


経緯

Microsoft から対抗 Slack と噂されていたサービスが発表されました。

普段仕事で Office365 を使っている私にとっては、Microsoft Teams はとてもワクワクするサービスですね。

早速ですが Microsoft Teams に PowerShell から投稿してみることを試してみました。


検証環境


  • Windows 10 Pro

  • PowerShell 5.0


手順


  • チャネル名の右にある点々をクリックして、コネクタをクリックします

    1.png





  • Incoming Webhook を探して 追加 をクリックします

    2.png




  • 名前やアイコンを設定します

    3-1.png




  • スクロールして 作成 をクリックします

    3-2.png




  • URL が表示されますので、コピーしてテキストエディタにでも貼り付けておきます

    4.png




  • チャネルの画面に戻ると 3 で付けた名前とアイコンの何者かが参加しています

    6.png



  • Hello World

    1万年と2000年前から使われるこのフレーズを使います。

    7.png

    下記コマンドを PowerShell から入力すると画像のように投稿されると思います。

$URI = 'コピーしてテキストエディタにでも貼り付けておいた URL'

$body = ConvertTo-JSON @{
text = 'Hello World'
}
Invoke-RestMethod -uri $URI -Method Post -body $body -ContentType 'application/json'



  • Office 356 Connectors API を使って少しリッチな投稿を試す

    成功するとこのような感じで表示されます。

    9.png

    Office 356 Connectors API は今回始めて使ったのですが楽しいですね。


$URI = 'コピーしてテキストエディタにでも貼り付けておいた URL'

$body = ConvertTo-JSON -Depth 4 @{
summary = 'Microsoft Teams テスト'
title = '自己紹介'
sections = @(
@{
activityTitle = 'miyamiya'
activityImage = 'http://1bed.saloon.jp/wp-content/uploads/2010/08/904153-150x150.jpg'
}
@{
title = 'facts テスト'
facts = @(
@{
name = '好きな食べ物'
value = 'ステーキ, ラーメン'
}
@{
name = '好きな芸能人'
value = 'misono'
}
@{
name = '好きなプログラム言語'
value = 'PHP'
}
)
}
)
}
$body = [Text.Encoding]::UTF8.GetBytes($body)
Invoke-RestMethod -uri $URI -Method Post -body $body -ContentType 'application/json'


参考 URL