Microsoft Teams のタブに追加した Power Apps アプリで、現在のチームの情報を取得する方法

今回は Microsoft Teams のタブに追加した Power Apps キャンバスアプリ上で、現在のチームの様々な情報をラクに取得する方法を紹介します。

これにより、タブを追加したチームに関するチーム ID やチャネル ID といった各種 ID を取得したり、ユーザーのロケーション設定や Teams で設定しているテーマなどを取得することが可能です。

目次

使用する関数

Power Apps に既定で用意されている、Param 関数を使用します。

Param 関数の詳細は以下の公開情報を確認ください。

docs.microsoft.com

 

取得できるパラメータ

Param 関数を利用することで取得できる Teams 関連のパラメータについては、以下の公開情報を確認ください。

代表的なものとしては以下のような情報を取得することが可能です。

  • local:ユーザーの Teams の言語設定
  • channelId:タブアプリを追加したチャネルの ID
  • groupId:タブアプリを追加したグループの ID
  • theme:ユーアーの Teams のテーマ設定

docs.microsoft.com

 

使い方

使い方はとても簡単で、キャンバスアプリ上で Param 関数を使用して、利用したいパラメータを引数として渡してあげるだけで OK です。

例えば、タブを追加したチャネルの ID を取得したい場合は、以下のように Param 関数を設定します。

 Param("channelId")

今回は確認のために、全てのパラメータをラベル上に表示してみたいと思います。

f:id:trivia365:20210325181735p:plain

キャンバスアプリのラベルの設定イメージ

※Power Apps のエディター上では本当に値が取得出来ているかの確認ができないため、一度アプリを公開して、チームのタブに追加してから動作を確認する必要があります。

 

アプリを公開したら、Teams のチームのタブにアプリを追加します。

※この際に Web サイトとしてではなく、Power Apps のアプリとして追加してください。

f:id:trivia365:20210325182021p:plain

タブの追加

 

取得結果

タブを追加後にアプリを起動すると、以下の通り各パラメータが取得出来ていることが確認できました。

f:id:trivia365:20210325182612p:plain

パラメータの取得結果

おまけ:こんな使い方も

例えば、タブにキャンバスアプリを追加して入力した情報を、チャネルメッセージとして投稿することも可能です。

こんな感じで簡易的な入力画面を用意して、投稿ボタンをクリックすると、

f:id:trivia365:20210325183815p:plain

無事、チャネルにメッセージを投稿することが出来ました。

f:id:trivia365:20210325184121p:plain

 

以上、今後はこの関数と Teams を組み合わせて実現出来そうな機能を試してみて、またご紹介させて頂きたいと思います。

Power Apps で SharePoint のユーザーとグループ列に既定値を設定する方法

※ちょっとハマったので記事に纏めます。


Power Apps を使って SharePoint のリストをカスタマイズしたいときに、
SharePoint のユーザーとグループ列に既定値としてユーザーを入力してリストに登録する方法になります。

「既定値として入力は出来たけど、いざ登録してみるときちんとリストに登録されていない」ということがあり、これまでは Patch 関数を利用して強引にリストにユーザーを登録していました。

ですが、既定値の設定方法を工夫することで、Patch 関数を使わずにリストに登録ができるようになったのでご紹介します。

Patch 関数を使う場合の参考はこちら
PowerAppsからSharePointカスタムリストのユーザーまたはグループに値を入れる方法 │ システム運用日記

これができることにより、例えば「アプリを起動しているユーザーを既定でユーザーとグループ列に登録したい」といった場合に活用できると思います。


その方法ですが、
SharePoint リストフォームのユーザーとグループ列を使用している項目の中にある
「DefaultSelectedItems」の設定値に以下を登録するだけです。

f:id:trivia365:20200210212823p:plain

設定画面

実際のテキストはこちら

{
  Claims: "i:0#.f|membership|" & Lower(User().Email),
  Department: "",
  Email: User().Email,
  DisplayName: User().FullName,
  JobTitle: "",
  Picture: ""
}

 
それ以外に Update 等の変更は不要です。
※ アプリを使用したユーザーが既定値で入力されたユーザーを削除した場合はリストには登録されません。当然ですが。。。

また上記の入力内容の中で、" " となっているプロパティについては省略可能です。
最低限必要になるのは以下のみなので、必要に応じてプロパティを選択してください。

{
 Claims: "i:0#.f|membership|" & Lower(User().Email),
 DisplayName: User().FullName
}


ちゃんと調べていないので推測ですが、
「Claims」は SPO への登録に必要で、
「DisplayName」は Power Apps の検索ボックスに選択したユーザーを表示するために必要といった感じだと思われます。


以上。

Microsoft Teams のチャットにファイルサーバー等のパスをハイパーリンクとして送信する

※2021/3/25 追記


ファイルサーバー等を利用している企業では、Microsoft Teams のチャットでフォルダパスをハイパーリンクとして送信したい場面があるかと思います。

以前から Skype for Business をご利用されていた方であれば、Skype ではフォルダパスをハイパーリンクとして送信出来ていたので、Microsoft Teams でも出来るだろうと思われる方も多いと思います。

ですが結論から言うと、残念ながら現時点(2018/112021/3/25)でもなお、Microsoft Teams でフォルダパスをハイパーリンク化して送信する機能は実装されていません

フォルダパスをチャットに貼り付けてもただのテキストとして送信されてしまうため、受信者はテキストをコピーしてエクスプローラーのアドレスに貼り付けるしかありません。

ちなみにMicrosoft Teams のチャットでは以下のように「リンクの挿入」が出来ますが、ここでハイパーリンクとして使用できるのは「http」もしくは「https」のみ。
つまり Web サイトの URL 以外はリンク設定が出来ない仕様となっています。

f:id:trivia365:20181115213653p:plain



UserVoice にも1年前3年前から要望が上がっているようですので、「フォルダパスをハイパーリンクとして送信する機能が欲しい!」という方は、以下の URL から投票していただくと機能が実装される可能性が高まります(あくまでも要望)ので是非ぽちっとしてみてください!

How can we make Microsoft Teams better?

  • 1320 votes
  • 121 comments

File path to links

When users copy/paste a link to a local folder on a server in Team, that link currently comes through as text. This causes other users to have to copy/paste the link into a new file explorer address bar. What I would like Teams to do is convert this path into a hyperlink automatically, so they ...

microsoftteams.uservoice.com

 

ただこれを機にファイルサーバーからクラウドストレージへの移行を検討されるのも良いかもしれませんね。

OneDrive ​for Business の Known Folder Move (KFM)機能について​

今回はOneDrive ​for Business の Known Folder Move (KFM)機能についての​ご紹介となります。

7月初旬にMC143579 としてOffice 365 のメッセージセンターで公開され、
7月末には一般テナントにも展開済みの機能となります。

いや、Known Folder Move ってなんやねん!!って感じですが、日本語訳では「既知のフォルダー移動」になります。・・・ますます意味がわかりません。(MSさん、もう少しマシなネーミングあったでしょう。笑)

ざっくり機能をご紹介させていただくと、
Windows のPC に存在している「ドキュメント」、「デスクトップ」、「ピクチャ」のフォルダをOneDrive for Business の同期対象に出来るようになりました。

これにより何が嬉しいのかというと、今まではこれらのフォルダに保存したファイルはWindows のローカルでしか利用できなかったのが、OneDrive と同期できるようになることでデバイスを問わずに利用可能になることです。

よく、「やべ、デスクトップにファイル置きっぱなしだ~Σ(゚д゚lll)ガーン」的なシーンがあるかと思いますが、そんな時も外出先からタブレットスマートフォン経由でもファイルにアクセスできるようになります!

また、デスクトップに置きっぱなしである日突然のPCの故障によるデータの損失も防ぐことができます!

参考情報は以下のURLをご覧ください。

techcommunity.microsoft.com

この機能を利用するためには、ユーザーから初期設定が必要になります。手順は以下の通りです。
※グループポリシーを設定することで、ユーザーへの展開方法(強制展開・ユーザー通知、非アクティブなど)を制御することも可能です。グループポリシーの設定についての詳細は以下の公開情報をご参考ください。

docs.microsoft.com



KMF の設定手順

1.OneDrive の同期ツールを開きます。

2.[・・・]から[設定]を開きます。

f:id:trivia365:20180912235227p:plain

3.[自動保存]のタブを開き[フォルダーの更新]をクリックします。

f:id:trivia365:20180912235335p:plain

4.[重要なフォルダーの保護を設定]のウィンドウで、同期対象にするフォルダを選択して[保護の開始]をクリックします。

f:id:trivia365:20180912235427p:plain


5.以下のように同期が開始され、完了後に選択したフォルダがOneDrive と同期されます。

f:id:trivia365:20180912235602p:plain




以上です。
個人的には設定しても悪いことは何もない機能だと思いますので、特に理由がない限りは設定されることをお勧めします!!

MC146557:Office 365 ロードマップの新バージョンリリース

今回はOffice 365 のメッセージセンターに掲載されていた「MC146557:Microsoft 365 Roadmap」についてです。

f:id:trivia365:20180912232726p:plain

Office 365 ロードマップ サイトの画面キャプチャ


これまでのOffice 365 ロードマップは9月中旬以降に”Microsoft 365 Roadmap”として生まれ変わり、URLやその他いくつか内容が変更されるようです。

今までのOffice 365 ロードマップからの変更点としてはざっくり以下のようなものがあります。
・URLが変更になる
 ※旧URL(https://products.office.com/business/office -365 )でブックマークなどしている場合も、新URLへリダイレクトされるようなのでご安心ください。
Windows 10、EMS(Enterprise Mobility Suite)、Azure の機能についてのロードマップも掲載されるようになる(Office 365 関連のみ)
・複数の新しい検索フィルターが追加される
・新しいRSSフィードが利用できるようになる


どのような形でリリースされるのかはまだ不明ですが、9月中旬リリース予定とのことなのでまたリリースされ次第、変更点と利用方法について記事を書きたいと思います。

短いですが以上となります。

SharePoint Online の共有機能に関するアップデート

今回はOffice 365 のSharePoint Online の共有機能に関するアップデート内容をご紹介したいと思います。

ここ数ヶ月の間でアップデートされた機能が2つあります。
①アクセス要求ページのカスタマイズが可能になった
②共有時に送信されるメールの仕様が一部変更になった

それでは順に記載していきます。

 

①アクセス要求ページのカスタマイズが可能になった

  • MC135238 (←メッセージセンターに掲載されている番号です)
  • 公開時期:2018年5月中
  • 内  容:SharePoint Online のサイト、リストやライブラリなどに権限がないユーザーがアクセス要求をサイトの管理者に対してリクエストするページに表示される内容が一部カスタマイズできるようになりました。具体的には以下の機能が追加されました。

      ・誰がアクセス要求を受けているかを一覧で確認できるようになった
      ・アクセス要求の承認者を指定できるようになった
      ・アクセス要求ページに表示する文言を自由に設定できるようになった

    これまではアクセス要求の承認はそのサイトの管理者しかできなかったのが、ユーザーやグループを指定して、指定された人たちなら承認できるようになりました!

    f:id:trivia365:20180711213420p:plain

    アクセス要求の設定ページ(アクセス要求を許可するユーザーやメッセージを編集できる)



    またアクセス要求のページは既定で用意されたものしか使えなかったのですが、アクセス要求の画面に任意のコメントを追加できるようになりました!例えば以下のように「カスタムメッセージ」を追加できます。
    (あまり必要ないかもしれないですが、ユーザーをスムーズに誘導するためのメッセージなどを書いてあげると親切かもしれません。) 

    f:id:trivia365:20180711213742p:plain

    アクセス要求ページ(編集したメッセージが表示されるようになりました)

     


②共有時に送信されるメールの仕様が一部変更になった

      • MC142154
      • 公開時期:2018年6月中
      • 内  容:SharePoint Online のサイトやリスト、ライブラリなどを他のユーザーに共有した際に送信されるメールの仕様が一部変更されました。具体的には以下です。

          ・共有メール下部のロゴに企業のブランドが反映されるようになった
          ・外部共有で送信されるメールの差出人が、そのアイテムなどを共有したユーザーのメールアドレスになった

      • これまでは共有メールの下部にはMicrosoft さんのロゴが添付されていましたが、Azure Active Directory の企業のブランドで自社のロゴなどを設定している場合、その画像が使用されるようになりました。

 

f:id:trivia365:20180711214035p:plain

共有メールのロゴが変更されます。

 

      またこちらは外部共有時のみですが、外部共有で送信されるメールの差出人はこれまではSharePoint Online でシステム的に用意されていたメールアドレスから送信されていた(誰が共有しても同じ差出人だった)のが、そのアイテムなどを共有したユーザーのアドレスから送信されるようになったというものです。
      (社内のユーザーに共有した場合は、これまでも共有したユーザーのアドレスから送信されていました。)



以上、今回ご紹介した内容は、「アクセス要求は許可してないよ~」とか「外部共有とか禁止してるしっ」といったユーザーの方にはあまり関係のない内容かもしれませんが、こういったところでも細々とアップデートされてますよ!ってことをお伝えしたくご紹介させていただきました。

これ以外にもたくさんのアップデート情報がありますので、今後も定期的にご紹介させていただきます! 

Microsoft Flow × SharePoint Online:投稿したアイテムを自動翻訳してみた

グローバルに展開している企業などでは SharePoint Online 上のコンテンツを多言語で展開したいといった要件がある場合もあるかと思います。

そこで今回は Microsoft Flow を使ってSharePoint Online の日本語のサイトのリストにアイテムを投稿した際に、自動で翻訳した内容を英語サイトのリストに投稿するアプリを作ってみようと思います。

日本語がわかりずらいので(笑)、以下の↓のフローチャートをご覧ください。

f:id:trivia365:20180705203001p:plain

 

ポイントは以下となります。

  • 本文(複数行テキスト)をそのままTranslator で翻訳しようとすると html の要素ごと翻訳にかけられてしまう(div やら 余計なものまで翻訳されちゃう)ので、Html to text を使用して複数行テキストの本文をテキストに変換します。

  • Translator で翻訳する際には、タイトルと本文をそれぞれわけて翻訳します。
    (そうしないと次の「項目の作成」の時に翻訳した結果が使用できない)

 

※事前に以下のサイト・リスト・列を用意してください。

  • 日本語のサイトにリストを作成して以下の列を用意しておきます。
    ・列名:タイトル 種類:一行テキスト
    ・列名:本文   種類:複数行テキスト
  • 日本語サイトとは別に英語のサイトを作成し、リストを作成して以下の列を用意しておきます。
    ・列名:Title  種類:Text
    ・列名:Body   種類:Multiple lines of text


    以上を踏まえて以下に手順を記載します。
  1. Microsoft Flow にアクセスして「マイフロー」のタブから「一から作成」をクリックします
  2. トリガーの追加では「項目が作成されたとき」を検索して追加します。
  3. 日本語サイトのアドレス、リスト名を選択します。
  4. 新しいステップ>アクションの追加の順に選択し、「Content Conversion - Html to text」を選択して追加します。
  5. Content には「本文」を選択します。
  6. 新しいステップ>アクションの追加の順に選択し、「Microsoft Translator - テキストの翻訳」を選択して追加します。
  7. テキストには「タイトル」を、対象言語には「English」を選択します。
  8. 新しいステップ>アクションの追加の順に選択し、「Microsoft Translator - テキストの翻訳」を選択して追加します。
  9. テキストには「Html to text」のセクションから「The plain text content.」を選択し、対象言語には「English」を選択します。
  10. 新しいステップ>アクションの追加の順に選択し、「SharePoint - 項目の作成」を選択して追加します。
  11. 日本語サイトのアドレス、リスト名を選択します。
  12. Title には「テキストの翻訳」セクションの「翻訳されたテキスト」を選択し、Bodyには「テキストの翻訳2」セクションの「翻訳されたテキスト」を選択します。
  13. 以上で完了です。保存して実際にアイテムを登録してみます。

    こんな感じに自動で翻訳されました!

    こちらが日本語で投稿したアイテム

    f:id:trivia365:20180705205934p:plain

    日本語で投稿したアイテム

    そしてこちらが英語に翻訳されたアイテム

    f:id:trivia365:20180705205950p:plain

    Flow で自動で翻訳した英語のアイテム

    ん~ぶっちゃけかなり英語怪しいけど、まあ良しとします(笑)