LoginSignup
1
1

More than 1 year has passed since last update.

Power BI: Teams Channel の Reactions 解析用 カスタムコネクター

Last updated at Posted at 2022-02-06

背景

Teams のリアクション解析方法が無かったので、取りあえず作ってみた。

概要

  • Graph API で messages を取得
  • 20件ずつしか取れないので、指定日までひたすら取得
  • 指定日は、日付指定ではなく、何日前か?を指定

指定日より古いデータがあった時点で、その際に取得した全データを返すので注意
気になるなら、フィルターすれば良い

Power BI Serivce や Custom Connector での自動更新には認証が出来ないので、たぶんアプリ登録必要?

全メッセージ取得には課金発生している様子・・。その影響が出てるかも

機能改修

2022/2/16 不具合修正

Version 1/0/2/0

  • Replies の Text 返却が固定値になっていたので修正

2022/2/8 要望があったので追加&修正 (詳細版へのみ)

Version 1/0/1/0

  • CreatedDateTime の TimeZone 対処
  • nextlink が無い場合の取得終了(エラー対処)
  • Replies の取得追加

  • message 情報の追加
    • subject
    • createdDateTime
    • deletedDateTime
    • bodyText: contentType = text 時のみ。それ以外は  とした
      image.png

すぐ使ってみたい人用の使い方

まずはダウンロード

カスタムコネクター認識フォルダーへ保存

以下で多分行ける筈。

%userprofile%\ドキュメント\Power BI Desktop\Custom Connectors

Documents じゃないと動かない場合もあるかも?英語版?

Power BI を(再)起動して、今回のコネクターを探す

image.png

以下が出るので「続行」(詳細省略)

image.png

不安な場合は、GitHub からコードをダウンロードして、Build して *.mez ファイル作成してください

Teams の チャネル内メッセージの URL をコピーして貼り付けして、「OK」

image.png

"TeamId", "ChannelId" を「リンクをコピー」で取得したURLから抽出してます

Connecting.png

データの再構築方法

コネクター二点

TeamsReaction

投稿者とリアクションで集計したもの
こっちさえあれば、と思ったものの・・集計の仕方に悩んだので詳細版も追加

悩んだことは

  • Bot の投稿
  • 投稿者自身の reaction
  • reactionType での集計(それぞれに分けたほうがいいのか・・それとも三分割ぐらいにしたほうがよいのか・とか)

RetreiveSample.png

TeamsReactionDetails

元となるデータを必要なとこだけ抜粋して返してる
RetreiveSampleDetails.png

注意

  • Bot代理投稿だと、postUser が null なので、 onBehalfOf がある
  • 完全Botだと、両方 null
  • link は、元となるメッセージへのリンクなので、気になるメッセージの確認用途に
  • reactions は nullable で複数有。誰がつけたかも保持しているので、自己reactions を外す方がいいかも

ソース

あとがき

Team, Channel を選択式にしたかったんだけどダイアログにする方法がわからず諦め

事前に team だけ取得して見せることは出来そうだったけど、channel もってなったので・・
Power Automateで、選択したチャネルメッセージの分析結果を通知してくるようにしたほうが使いやすいかも?

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1