Office 365とかSaaSの自由帳

Office 365の話とかSaaSについてとかいろいろ書きたいと思います。なんだかんだ備忘録になると思います。

Teamsと色々なサービスを連携してみよう。Google Analytics & Power BI編

前回に続きTeamsタブネタ。今日もタブの活用ということで、WebページにGoogle Analyticsを埋め込み、そのデータをPowerBIに繋ぎこみTeamsのタブに表示しましょうという内容です。難しそうに見えてとっても簡単です。
PowerBIを使うので必要なライセンスはご用意ください。私は今回用に試用版を取得しました。

Google Analyticsを埋め込む

ウェブサイトにGoogle Analyticsを埋め込みましょう。
今回は以下のサイトを参考に、はてなブログGoogle Analyticsを埋め込んでみます。

psn.hatenablog.jp

無事埋め込むことができました。

f:id:takeru55555:20171128005159p:plain

PowerBIとGoogle Analyticsを繋ぐ

PowerBIにはGoogle Analyticsのテンプレートがあるので今回はそれを使いましょう。
PowerBIを開き、サービスから「取得」を選択

f:id:takeru55555:20171128010237p:plain

 

一覧から「Google Analytics」を選択

f:id:takeru55555:20171128010331p:plain

 

「今すぐ入手」をクリック

f:id:takeru55555:20171128010419p:plain

 

認証方法を「OAuth2」を選択し、「サインイン」をクリック

f:id:takeru55555:20171128010457p:plain

 

アカウントを選択

f:id:takeru55555:20171128010615p:plain

 

「許可」をクリック

f:id:takeru55555:20171128010718p:plain

 

PowerBIでデータを開くことができました!

f:id:takeru55555:20171128010856p:plain

Teamsにタブとして追加

それでは、Teamsと連携してみましょう。
目的のチャネルに移動し、タブ上の「+」をクリックします。

f:id:takeru55555:20171127205923p:plain

 

アプリの一覧の中から「PowerBI」を選択します。

f:id:takeru55555:20171128012035p:plain

 

追加するダッシュボードをクリックします。

f:id:takeru55555:20171128012104p:plain


タブが追加されました。

f:id:takeru55555:20171128012008p:plain


非常に簡単ですね。
PowerBIで分析したタブをチームで共有する、といった使い方はよくあると思うので、タブとして追加できるのは便利ですね。

今後もタブの追加について書こうと思います。
ではまた次回。

Teamsと色々なサービスを連携してみよう。Trello編

本日もTeamsネタです。Teamsの便利なところはチャットそのものだけでなく、色々なアプリケーションを「タブ」という形で追加できるということもありますよね。
ということで色々なサービスをタブに追加してみようということで、今日はタスク管理として名高いTrelloを追加してみます。

Trelloとは?

まずはTrelloとはそもそもなんだ?ということで、Trelloはポストイット感覚でできるタスク管理ツールで、直感的に操作できるということが特徴です。
個人のタスク管理だけでなく、複数人でタスク管理を行うこともできます。
詳しいことは以下のサイトがわかりやすいかと思います。

seleck.cc

Trelloを使ってみる

私は普段仕事で利用しているので、今回はこの記事用にテストアカウントを取得してみました。
アカウントの取得は、こちらから行ってください。

今回はあるプロジェクトのタスク管理をするための「新プロジェクト」というボードを作成しておき、「ToDo」、「進行中」、「完了」というリストも作成し、適当にカードを並べてみました。

f:id:takeru55555:20171127205517p:plain

用語それぞれの考え方としては、以下のようにお考え下さい。
ボード:ポストイットを張るホワイトボードみたいなもの
リスト:ポストイットのグルーピング
カード:ポストイット

なお、各カードにもチェックリストや、期限、ラベルなどをつけることも可能です。

Teamsにタブとして追加

それでは、Teamsと連携してみましょう。
目的のチャネルに移動し、タブ上の「+」をクリックします。

f:id:takeru55555:20171127205923p:plain

 

アプリの一覧の中から「Trello」を選択します。
f:id:takeru55555:20171127210033p:plain


すでにTrelloにログインしている場合は、ボードの選択画面が表示されますので、追加したいボードを選択します。※ログインしていない場合はログイン画面が表示されるので、ログインします。

f:id:takeru55555:20171127210311p:plain


タブが追加されました。ここからカードの移動や編集も行えます。

f:id:takeru55555:20171127210500p:plain

実際の運用では、プロジェクト用のチャネルを作成し、プロジェクトのタスク管理用のボードをタブに追加するといった使い方でしょうか。
ちなみにTrelloにログインしていないユーザーがこのタブを開こうとすると、以下のようにログインが求められます。

f:id:takeru55555:20171127210840p:plain

 

なお、TeamsにもTrelloのコネクタがあるので、カードが追加された場合や更新された場合に通知する、といったことも簡単にできます。

f:id:takeru55555:20171202165155p:plain

f:id:takeru55555:20171202165331p:plain


また、FlowにもTrelloのコネクタがあるので、もう少し条件を付けたい場合や、他のサービスとも連携させた場合なども色々できますね。

f:id:takeru55555:20171127211656p:plain

f:id:takeru55555:20171127211715p:plainこのようにマイクロソフト以外のサービスと繋げるってのは非常に便利なものです。
ではまた次回。

PowerShell module for Teamsを試してみた。(そして今一歩だと感じた)

最近よくTeamsを触っております。
そんな中でTeams用のPowerShellも色々と試して、ほかのOffice 365系のPowerShellとは大分性格の違うやつだったので、備忘録も兼ねて書こうと思います。
個人的な結論としては今後に期待!という感じだったので、そのあたりも記載します。
なお、このPowerShellは2017/11/24時点でバージョンが0.9.0で、ベータ版のような扱いみたいなので、今後変更される可能性は多々あることをあらかじめご注意ください。

とりあえず使ってみる

1.モジュールのインストール

まず、Teams用のPowerShellを使うためには必要なモジュールをインストールする必要があります。以下のページからインストールしてください。基本的にはSave-Moduleでモジュールの保存、Install-Moduleでモジュールのインストールです。

www.powershellgallery.com

2.コマンドを叩く

さてコマンドを叩いてみましょう。
まずは以下のコマンドにてTeamsに接続します。

Connect-MicrosoftTeams

f:id:takeru55555:20171124213047p:plain

無事接続ができました。次は試しにチームの一覧を取得する以下のコマンドを叩きましょう。ちなみにこのテナントには20個程度のチームがあります。

Get-Team

f:id:takeru55555:20171124213501p:plain

なぜか20個程度あるはずのチームが2つしか取得できませんでした。

ここで少しはまりました。私はこのコマンドはてっきりテナント内のチームを取得するものだと思っていたのですが、実際はPowerShellの実行ユーザーが所有しているチームの一覧を取得するものだったようです。

そもそもTeams用のPowerShellは、他のサービスとは少し考え方が違うようです。
他のOffice 365のPowerShell(Exchange Online,SharePoint Online等)のコンセプトとしては、管理目的で利用するという側面が強かったように感じますが、Teamsの場合少し違っていて、PowerShellの実行ユーザーが画面で操作できることと同様のことをコマンドで利用可能、というもののようです。
チームを取得したり設定したりするコマンドの場合、実行ユーザーが所有しているチームが対象となりますし、チームを作成するコマンドの場合、実行ユーザーが所有者としてチームを作成するという動作となるようです。
また、PowerShellのコマンド自体管理者でなくとも実行できてしまうようです。
ちなみに実行ユーザーはTeamsを利用可能である必要がありますので、Teamsのライセンスが必要です。
簡単に他のPowerShellとの違いを書くと以下のようになります。

Exchnge OnlineやSharePoint Online, MsolServiceなどのPowerShell

管理者にて実行するもの。テナント全体にかかわる設定を実施可能

TeamsのPowerShell

ユーザーでも実行可能。チームやチャネルの作成を実行可能。作成されたチームは実行ユーザーに紐づく。管理者が他のユーザー用のチームを用意したり、テナント全体の設定を変更できるといったものではなさそう。

 

といった感じで、まずそもそものコンセプトが違いますね。
PowerShellは管理目的で使うことが多いので正直う~んというのが率直な感想です。

所感など気づき

上記のようなことからもう一歩というところですね。以下気づいたことを簡単に書きます。

「管理者」としての機能

先ほども書きましたがやはりPowerShellは管理目的で使うというのが一般的な使い方だと思います。テナント内のチームを取得したり、テナントごとの設定を変更したりといった利用方法ができなければPowerShellの利用シーンが少し考えづらいなあと思います。今後テナントの管理という観点で実装されることは非常に期待したいと思います。

画面でできることでよく使う機能は実装してほしい

せめて画面でできることは出来て欲しいものです。そういった観点ですと、既存のOffice 365グループに紐づくチームを作成するといったことはこのコマンドでは出来ないようでした。このあたりも今後に期待する機能です。

まとめ

まとめとしてはやはり今後に期待したい、ということです。まだベータ版なので、正式リリースには期待したいと思います。

ちなみにGraphAPIでもTeamsは管理できるようなので、機会があればこちらも試してみようと思います。

ではまた次回。

番外編!Azureもくもく会@新宿 No.13に行ってみた【まとめと所感】

本日はこちらのもくもく会に参加してまいりました。

azure-mokumoku.connpass.com

ノンコーディングDayということで、メインはLogic AppsとFlowで各々作りたいものを作ろうぜ!という会で、まず自己紹介から始まり、約一時間のもくもくタイム、そして最後に発表したい人は成果発表するという流れでした。
色々と学びと気づきがあったので、簡単にまとめます。

気付き1:Azureとの親和性高し!VMの監視も楽々

成果発表の中にAzureのVMのCPUが閾値を超えたらSlackに通知する、といったものがありました。
Azure Event Gridを使うことで、様々なイベントをトリガーにし、Slackに発砲できるので、Azure上のVMの監視にはもってこいの方法ですね。

docs.microsoft.com

オンプレミスのサーバーをP2VしてAzureのVMを運用している、という会社がどんどん増えている中で、非常に有効な手段であると感じました。

IFTTTやZapierとか同様のサービスが多い中で、Azureと親和性の高いマイクロソフト純正のサービス、というのはLogic Apps/Flowの大きなメリットだと思います。

また、Azure AutomationもAzureの管理には向いているので、こういったものも活用し、ChatOpsを実現する、というのも比較的容易にできるのではないかと感じました。

気付き2:とっても簡単!Cognitive Serviceとの連携

本日の成果発表の中でLogoc AppsからCustom Vision APIComputer Vision APIを使う、というものもありました。(各サービスのURLは下記参照)

azure.microsoft.com

azure.microsoft.com

OneDriveにアップした画像ファイルをComputer Vision APIを使って画像の説明をSlackに投稿するというものや、一部途中ではありましたがPinterestとCustom Vision APIを組み合わせるといったものなどアイディア次第で色々できるんだな~と思いました。

ハンバーガーの画像と組み合わせて何かできないかな?とふと思ったりもしました。

気付き3:ノンコーディングでループも簡単

私が今日取り組んだのがFlow内でのループです。
以前作成した近くのハンバーガー屋さんを探す仕組みのノンコーディング版です。
以前はAzure Functions内でAPIのコールおよびTeams(Slack)に投稿していましたが、今日はFunctionsを使わずにAPIをコールし、取得したJSONをパースしてループする、といったものを実装してみました。

はまったポイントとして、実際の応答からJSONスキーマを生成し、JSONをパース出来るのですが(以下画像参照)、生成されるJSONスキーマと実際の応答のJSONのデータで恐らく多少の差異があったようで、エラーになってしまうということがありました。JSONスキーマを工夫することで、エラーを回避することができました。

f:id:takeru55555:20171117000148p:plain

多少のはまりポイントはあったものの、今回の実装でFunctionsを使わずともノンコーディングで実装することができました。

まとめ

Logic AppsやFlowはアイディア次第で色々と面白いことができそうだなあと思いました。
Cognitive Serviceとの親和性も非常に高く、とても簡単につなぎこみができるので、これからも色々と使ってみようと思います。

ではまた次回。

とっても簡単!Microsoft Flowを使ってハンバーガー関連のツイートをTeamsに投稿する

こんにちは。
唐突ですが、好きな食べ物を食べる瞬間って幸せですよね。私はハンバーガーが大好きなのですが、特に最初の一口目を頬張る瞬間はなんとも素晴らしいものです。

そんなわけで、タイトル通りハンバーガーとTeamsを絡めたことを書こうと思います。
Microsoft Flowを利用し、Twitterハッシュタグに特定のもの(今回は#ハンバーガー)があった場合、Teamsの特定チャネルに投稿する、というものになります。
Microsoft Flowも非常に便利なツールなので、ぜひ活用してみてください。

事前準備

まずはMicrosoft Flowが利用できる環境を準備しましょう。Microsoft FLowは様々なサービスを組み合わせ、自動化ができるサービスで、基本的なOffice 365プランでは利用可能です。(詳細なプランの情報についてはこちらを参照)
似ているサービスとしてはIFTTTやZapierが挙げられますね。

次にTwitterを利用するのでTwitterのアカウントを用意しましょう。

また、Flow経由で投稿するTeamsのチャネルも用意しましょう。今回は以前の投稿作成した「Hamburger」チームの「Cheese Burger」チャネルを利用します。

なお、Microsoft Flowはプランによって実行できる回数が異なるので、多数の実行が予想される場合は注意してください。特に今回のようにTwitterなど、SNSと連携する場合は、ほうっておくとあっという間に上限に達する場合がありますので注意が必要です。

フローを作ってみる。

それではMicrosoft Flowでフローを作ってみましょう。Office 365ポータル等かMicrosoft Flowを開きます。
フローはテンプレートから作ることも可能ですし、一から作成することも可能です。
f:id:takeru55555:20171114235415p:plain

今回はテンプレートから作ってみます。「新しいツイートがハッシュタグと一致したときにMicrosoft Teamsに投稿する」を利用します。

f:id:takeru55555:20171114235300p:plain

連携するサービスのアカウント情報が必要になるので、今回はTwitterのアカウントでサインインします。

f:id:takeru55555:20171115000420p:plain

サインインしたら「続行」をクリックします。

f:id:takeru55555:20171115000756p:plain

 

以下のように検索テキストに任意のテキスト、Team IdとChannel Idにもそれぞれ任意のチーム名、チャネル名を設定し、「フローの作成」-「完了」でフローを保存してください。
f:id:takeru55555:20171115001026p:plain

ここまででフローの作成が完了しました。

Teamsに投稿されるのを待つ

それでは設定したハッシュタグTwitterに投稿されるのを待ちましょう。

以下のようにちゃんと投稿されてますね。(すごい勢いで投稿されておりました。。)

f:id:takeru55555:20171115003415p:plain

有効にしている時間は10分くらいだったのですが、思った以上に実行数が多かったです。(「#ハンバーガー」の実力を少し甘く見てたようですね。。)
先ほども書いたように実行回数には制限があるので、キーワードのチョイスには気をつけましょう。
また、今回のテンプレートの場合、リツイートも投稿されてしまいますので、除外したい場合は条件を書いたり別途考える必要があります。

ちなみにFlow側でも実行履歴を確認できます。

f:id:takeru55555:20171115002844p:plain

とっても簡単ですね。
今回はTwitterを利用しましたが、もちろんほかのサービスとも連携できます。例えばExchange Onlineで特定の送信者からのメールをTeamsに投稿するといったことも簡単に実装できます。また、テンプレートも充実しているので、活用すると非常に便利なサービスです。

TeamsというよりもFlowよりの話になりましたが、今回は以上になります。

今後Teamsと他サービスの連携やチーム作成での運用いったあたりを少し検証しようと思いますので、そのあたりについて投稿しようと思います。

ではまた次回。

とっても簡単!Advanced REST clientを使ってIncoming Webhook経由でTeamsに投稿する

本格的に寒くなりましたね〜〜。(毎度天気の話ですいません。。)
私は雪国出身(今は関東在住)なのですが、それでも東京寒いな〜と感じます。周りのマスクの着用率も日に日に増えてきている気がてますので、手洗いうがいを心がけましょう。

さて、前回の投稿でIncoming Webhookのことを書く、と書いたので、Advanced REST clientというGoogle Chromeのアドオンを使ってTeamsのIncoming Webhook経由で投稿するというないようについて備忘録として書こうと思います。
昨今様々なクラウドサービスある中でAPI経由で何かする、と言ったことは非常に良くありまが、その際に、Advanced REST clientのようなツールを使えると、curlなどコマンドを叩かなくてもAPIを実行できるというのは非常に便利です。知らない方は参考にしていただければ幸いです。

事前準備

まず前提のTeamsのお話。Teamsの構造ですが、Slackとは違い「チーム」-「チャネル」の二階層があります。(Slackは一階層)
チームは各部署、チャネルは部署のチームごとや部署内での情報共有の目的別に作るといった使い方が良さそうですね。
それでは、本題に入りましょう。今回利用するIncoming Webhookですが、チーム単位ではなく、チャネルごとに設定する必要があります。
今回は以下のように「Hamburger」チームに「Cheese Burger」チャネルを作っておりますので、このチャネルにIncoming Webhookを追加してHTTP経由で投稿できるように設定しましょう。
まず、チャネル名の右の「・・・」をクリックし、コネクタをクリックします。

f:id:takeru55555:20171113203058p:plain

コネクタを選択できますので、「Incoming Webhook」を構成します。※前回の投稿で触れたように、テナント全体の設定でIncoming Webhookが許可されていないとここで出てこないため、ご注意ください。

f:id:takeru55555:20171113203203p:plain

任意の名前や画像を選択し、作成をクリックします。

f:id:takeru55555:20171113203644p:plain

作成をクリックすると、URLが表示されるので、コピーボタンでコピーし、控えておいてください。※このURLを知っているとこのチャネルに投稿できてしまいますので、大切に保管しましょう

f:id:takeru55555:20171113203834p:plain

最後に完了をクリックします。
※すぐSlackと比べるのは良くないのですが、そういえばOutgoing Webhooksはないんですね。

そして今回の主役のもう一つ。Advanced REST clientをインストールしてみましょう。
Google Chromeのアドオンとして「Advanced REST client」を追加します。

f:id:takeru55555:20171113204426p:plain

ここまでで準備が整いました。

HTTP経由で投稿してみる

それでは早速投稿してみましょう。Advanced REST clientを立ち上げ、以下のように設定します。

  • Method: POST
  • Request URL:Incoming Webhookを追加した時に発行されたURL

また、Bodyタブをクリックし、以下のように設定します。

  • Body content type:application/json
  • Property name:text
  • Editor view:任意ですが、JSON editorがわかりやすいと思います
  • Property value投稿したい任意のテキスト※今回は「Cheeseburgers are so delicious!!」

f:id:takeru55555:20171113205721p:plain

「SEND」ボタンをクリックし、200が返って来ればOKです。

f:id:takeru55555:20171113205908p:plain

Teams側にもちゃんとCheeseburgers are so delicious!!が投稿されてますね。

f:id:takeru55555:20171113210002p:plain

非常に簡単ですよね。Incoming Webhookを利用することで、システムで異常を検知したらTeamsに投げると言ったことも比較的容易に実現することができます。

また、Advanced REST clientを使うことで、非常に簡単にAPIを叩けるので、私は良くAzure FunctionsやAzure Automationのテストをするのに利用していたりするので、重宝しております。

本日はここまでとなります。

次回は別の方法でTeamsに投稿するやり方として、これまたOffice 365のサービスとして提供されているMicorosoft Flowを利用した投稿について書ければと思います。
(飽きっぽいと良く言われるB型なので、続けられるように頑張ります。)

ではまた次回。

Teams初心者がTeamsを使ってみた。[使い始める編]

最近夜は大分寒くなりましたね~~。昼と夜とで気温差が高いので着るものに少し困ってしまいますね。(普段は私服なので)
電車でもゴホゴホしている人が多いので、風邪ひかないように気を付けなければですね。
さて、前回の投稿でTeamsをちゃんと使おうかなと書きましたので、備忘録として使ってみた感想等々を書きます。

ちなみに私はSlackユーザーなので、Microsoft版Slackと言われている?Teamsのことはざっくりとは理解しているつもりでしたが、触ってみると細かい違いがいくつかありました。この辺の違いについても今度記載したいと思います。

まずそもそもTeamsってなんじゃい!という話ですが、一言で言うとチャットツールです。
チャットツールなので、リアルタイムなコミュニケーションが非常に円滑にできるというメリットがあります。

実際私の所属している会社ではコミュニケーションツールとしてSlackを使っておりますが、社内間のコミュニケーションはほぼSlackで完結します。
社内でメールをするなんてことは非常に稀です。そのくらいチャットツールは非常に強力なコミュニケーションツールです。
また、この手のサービスのメリットとしては、他のサービスとのインテグレーションも挙げられます。例えば、サーバーの死活監視をしておき異常を検知したら通知を行う、といったこともよくある使い方かと思います。
(ここまではTeamsに限らずSlackやその他サービスの一般的なメリットでありますが。)

Teamsのメリットとしては、やはりOffice 365をお使いの会社は利用可能だということではないでしょうか。(もちろんプランにもよります。詳細はこちら
ただし、Office 365の1サービスゆえに他のサービスとの使い分けが難しかったりもするので、このあたりに悩まれている会社さんは多いのではないでしょうか。

Yammerとの違い

特に分かりづらいのはYammerとの違いですね。この辺りはMSさんが記事を公開してくれてますね。

【2017年版】Skype, Skype for Business, Teams, Yammer の違いは?【10/30 更新】 – Microsoft Partner Network ブログ

実際にコミュニケーションの特性的に以下のような感じでしょうか。

Teams:
緊急性(リアルタイム性)のある情報
(例)今打ち合わせ中なんだけど、至急これ教えて~!電車遅れてるから打ち合わせ遅れる>< 

Yammer:
緊急性(リアルタイム性)の低い比較的ゆるい情報
(例)渋谷界隈の美味しいお店、イベントの告知

ん~~、、特性が違うのはなんとなくは分かる、ただ使い分けは難しいですよね。
渋谷界隈の美味しいお店もイベントの告知もTeamsに投稿しても十分な情報だと思いますし、イベント告知もチャット特有の流れてしまうことを避けたいのであれば、SharePointにリストを作ってそこに投稿しても良いと思います。
となると、流れて欲しくない情報で、かつSharePointにも乗せれないゆるい情報はYammerという感じでしょうか。使い分けが少し難しいですね。

完全に個人的な意見ですが、まずはTeamsを使い、運用がしっかりと定着してから、どうしてもそこに乗らない「ゆるい」情報があればYammerの利用を検討する、といった形が良いのではと考えております。

下手に色々手を出しすぎるとどちらも使われないもの、になってしまうでしょうし。
ちなみに私が所属している会社では以前YammerとSlackと併用しておりました。しかし、今はSlackを社内間のメインのコミュニケーションツールとして使うようにしましたが、全く不便を感じてません。

ただし、大企業やグループ会社で一つのOffice 365を利用している、といった場合はYammerのメリットも出てくるかと思います。TeamsはOffice 365グループの機能であるため、1つのグループが2500人までという制限がありますし、同じ会社で接点が無い場合が多いといった大きな企業においては、YammerのようなSNSツールは有用であると考えております。このあたりは企業によって千差万別なのかなと。

使ってみた

ではそんなTeamsを使い始めてみました。まずはライセンスですね。

f:id:takeru55555:20171111002935p:plain


基本的にはこれで使えます。管理者側でもう少し細かな設定をしたい場合は次の設定ですね。「設定」の「サービスとアドイン」からMicrosoft Teamsを選択。

f:id:takeru55555:20171111003140p:plain

そうすると管理者の細かな設定が行うことができます。
ここでどのアプリを許可するか設定できますが、少なくとも「Incoming Webhook」の利用を許可しておいた方が良いと思います。http経由で投稿ができたりするので、死活監視をしておいて、異常を検知したら、http経由でTeamsに投稿する、といったことが可能になります。

f:id:takeru55555:20171111003502p:plain

あとはワッフルマークからTeamsをクリックすることで使うことができます。
※ブラウザで開いた画面です。

f:id:takeru55555:20171111003752p:plain


使い始めるのも簡単ですね。

今度はWebhookを追加して他のサービスと連携のお話でも書いてみようかと思います。

ではまた次回。