Microsoft Teams に PowerShell で投稿してみる

2020/04/18

経緯

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

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

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

検証環境

  • Windows 10 Pro
  • PowerShell 5.0

手順

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

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

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

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

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

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

  • Hello World

    1万年と2000年前から使われるこのフレーズを使います。
    下記コマンドを PowerShell から入力すると画像のように投稿されると思います。

$URI = 'コピーしてテキストエディタにでも貼り付けておいた URL'
$body = ConvertTo-JSON @{
  text  = 'Hello World'
}
Invoke-RestMethod -uri $URI -Method Post -body $body -ContentType 'application/json'
  • Office 356 Connectors API を使って少しリッチな投稿を試す
    成功するとこのような感じで表示されます。
    Office 356 Connectors API は今回始めて使ったのですが楽しいですね。
$URI = 'コピーしてテキストエディタにでも貼り付けておいた URL'
$body = ConvertTo-JSON -Depth 4 @{
  summary  = 'Microsoft Teams テスト'
  title    = '自己紹介'
  sections = @(
    @{
      activityTitle = 'miyamiya'
      activityImage = 'http://1bed.allright.life/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