目次
Microsoft Teams 特定チャネルでいいねをつけた数をカウントしよう!
twitterであったこのつぶやきをできるのかな?と思い勉強がてらやってみました。
本当は #MSTeams の特定チャネルのいいねをした人ランキングを作りたいんだけどね
— 目代昌幸 O365 MVP (@mokudai) May 30, 2019
長くなりそうなので、数回にわけていきます。
実現させるために必要な手順
- AzureADにアプリを登録する
- 必要なAPIアクセス許可を付与する
- Graph APIを利用して、チャネル一覧を取得する
- チャネル一覧からIDを取得し、メッセージ一覧を取得する
- メッセージIDをもとにスレッドへの返信メッセージを取得する
- 4、5で”いいね”された数とユーザIDを取り出す
- 6の情報を基に集計する
コードは書きません!以下を利用して取得します!
AzureAD、Graph API、Microsoft Flowを利用して取得していきます。
AzureADにアプリを登録する
- Azure Active Directory管理センターを開きます
- Azure Active Directory → App registrations → 【新規登録】をクリックします
- 名前欄に任意で名前を付けます。(今回はTeamsLikeCountとつけておきました)
リダイレクトURLに、「https://login.microsoftonline.com」と入力しておきます。
【登録】をクリックします
- 【APIのアクセス許可】をクリックします
- 【アクセス許可の追加】をクリックします
- Graph APIのリファレンスを確認し、必要なアクセス許可を付与します。
TeamsのAPIは一部ベータ版のため将来変更される恐れがあります
【Microsoft Graph API】をクリックします
- 【委任されたアクセス許可】をクリックします
- Group.Read.AllとGroup.ReadWrite.All にチェックを入れ、【アクセス許可の追加】をクリックします
- 組織での同意が必要なため以下のようになっているかと思います
- 下にある【「テナントの名前」に管理者の同意を与えます】をクリックします
- 【はい】をクリックします
- 管理者の同意が必要欄の警告がチェックマークに変わったことを確認します
- 同様にアプリケーションの許可にも同じAPIアクセス許可を付与します
- 【アクセス許可の追加】をクリックします
- 【Microsoft Graph】をクリックします
- 【アプリケーションの許可】をクリックします
- Group.Read.AllとGroup.ReadWrite.Allにチェックを入れ【アクセス許可の追加】をクリックします
- 【「テナントの名前」に管理者の同意を与えます】をクリックします
- 【はい】をクリックします
- 管理者の同意が必要欄の警告がチェックマークに変わったことを確認します
- 【証明書とシークレット】をクリックします
- 【新しいクライアントシークレット】をクリックします
- 説明欄に任意の名前を入力し、有効期限を任意で指定し(ここではなしにしています)【追加】をクリックします
- シークレットキーが表示されるので、確実にコピーし控えておきます
(このタイミングでしか確認ができません)
これでFlowからGraph APIを利用するための事前準備が整ったので、次はFlowからTeamsメッセージの取得をやっていきたいと思います!