Microsoft Graph Toolkit Teams 相關

本篇我們介紹一下Microsoft Graph Toolkit在Teams中應用的相關內容。

準備工作

  1. 安裝ngrok用於使用HTTPS承載我們的應用
  2. 訪問Teams管理中心,點開頁面右上角的設置, 確保開啓瞭如下圖的設置
    在這裏插入圖片描述
  3. 在Teams應用市場中安裝App Studio應用
    在這裏插入圖片描述

示例代碼

基於我們之前介紹的內容,我們此次通過mgt-get獲取當前用戶加入的Teams。

<mgt-get resource="/me/joinedTeams" scopes="User.Read.All">
    <template>
        <div class="header">
            <h1>My Joined Teams<h1>
            <h2>And  members</h2>
        </div>
        <div class="teams" data-for="team in value">
            <h3>{{ team.displayName }}</h3>
            <div data-if="team.description" class="description">
                {{ team.description }}
            </div>
            <div data-else class="description">
                Team description is empty
            </div>
            <h4>
                <mgt-people show-max="10" group-id={{team.id}}></mgt-people>
            </h4>
        </div>
    </template>
    <template data-type="loading">
        Loading...
    </template>
    <template data-type="error">
        {{ this }}
    </template>
</mgt-get>

比較醜,我們再加一些樣式。

<style>
    body {
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        background-color: #FFF;
    }

    .header {
        background-color: #6264A7;
        text-align: center;
        color: #F3F2F1;
        padding: 20px 10px;
        margin: 8px 4px;
        box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
    }

    .teams {
        background-color: #F3F2F1;
        padding: 10px;
        margin: 8px 16px;
    }

    .teams:hover {
        box-shadow: 0 3px 14px rgba(0, 0, 0, 0.3);
    }
</style>

好,現在看起來就好多了。
在這裏插入圖片描述
咱們就展示這麼一個小東西,下面進入正題。

將Web應用轉成Teams的標籤

Microsoft Teams的標籤頁一般是類似iframe那種嵌入型的網頁,能夠獲取一些Teams特定的信息,這就給了我們足夠的自主性去自定義開發。
這裏我們的目標就是在原來能獨立運行的基礎上,讓示例的極簡Web應用也能夠在Teams的標籤頁中工作,Teams要求承載內容的URL必須使用HTTPS。

第一步、添加Teams SDK

添加Microsoft Teams JavaScript客戶端SDK的引用,放在代碼中head標籤的下面。

<script src="https://unpkg.com/@microsoft/teams-js/dist/MicrosoftTeams.min.js" crossorigin="anonymous"></script>

第二步、添加Teams Provider

因爲既要讓我們的demo應用能獨立工作,也能夠在Teams的標籤頁中工作,因此我們要保留之前添加的Provider,在此基礎上添加一個Teams Provider。
修改後的Provider部分的代碼如下:

<mgt-teams-provider 
    client-id="[YOUR-CLIENT-ID]" 
    auth-popup-url="auth.html">
</mgt-teams-provider>

<mgt-msal-provider 
    client-id="[YOUR-CLIENT-ID]"
    depends-on="mgt-teams-provider" 
    redirect-uri="http://localhost:3000">
</mgt-msal-provider>

這裏我們在原來的MSAL Provider中聲明瞭一個屬性depends-on,它用來告訴應用,只有在mgt-teams-provider在當前環境不可用時才使用mgt-msal-provider。

第三步、創建auth.html

同時大家也注意到了,在Team Provider中我們使用了一個屬性auth-popup-url,因此我們需要創建一個auth.html頁面,代碼如下:

<html>
  <head>
    <script src="https://unpkg.com/@microsoft/teams-js/dist/MicrosoftTeams.min.js" crossorigin="anonymous"></script>
    <script src="https://unpkg.com/@microsoft/mgt/dist/bundle/mgt-loader.js"></script>
    <script>
      mgt.TeamsProvider.handleAuth();
    </script>
  </head>
  <body></body>
</html>

實際上除了對Teams SDK和Microsoft Graph Toolkit的引用之外,它只有一行代碼,用於處理認證。
轉換工作到這裏就完成了。

在Microsoft Teams中測試應用

第一步、在瀏覽器中啓用應用

跟之前一樣,在VS Code中點擊Go Live即可。

第二步、啓動ngrok

前面我們說了,需要HTTPS,這時就需要用到ngrok了。
執行命令ngrok http 5500 --host-header=localhost,5500需要改成你實際應用啓動時使用的端口。
在這裏插入圖片描述

第三步、添加reply-url

如上圖,https://a74e2856fe7e.ngrok.io就是我們生成的HTTPS的URL,將這個URL後面加/auth.html添加到Azure應用的Redirect URIs中並保存。
在這裏插入圖片描述

第四步、在App Studio中創建應用

在Microsoft Teams中創建應用我們需要一個圖標和一個清單文件指向實際的應用位置。使用App Studio的原因是它對於構建清單文件非常的友好。
我們可以使用網頁版或者桌面版的Teams完成以下操作,網頁版可以實時地調試,更推薦。
在Teams中打開App Studio,選擇Manifest editor標籤頁,點擊左側的Create a new app,在App details部分填寫信息,注意星號是都需要填寫的內容。

點擊左側的Tabs菜單,選擇Add a personal tab,填寫相應信息並保存,注意在Content URL的位置填寫我們的HTTPS鏈接,視情況可能需要添加具體的HTML頁面地址。
在這裏插入圖片描述
最後點擊左側的Test and distribute菜單,點擊Download按鈕下載我們的應用,下載的是一個ZIP文件,通常在我們默認的下載目錄中。
回到Teams的更多應用頁面,選擇上載自定義應用,爲<Tenant目錄>上傳,上傳剛剛下載的ZIP文件,上傳之後添加,大功告成了!
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章