One thing we’一直在等待的是从一个团队创建许多团队的能力
模板,就像许多组织使用SharePoint网站一样。
Microsoft现在已经发布了此文件(在撰写本文时为预览),我们可以定义一个
JSON中的模板,确切定义了团队的外观,包括
频道,标签,已安装的应用,所有者和各种配置
设置。很好,因为我们现在可以处理诸如
项目团队,其中可能有“Technical”, “Account
管理”, “Project delivery”, “Client success” and so on. You can
想象在不同渠道中定义的各种标签-也许
帐户管理频道将有一个带有窗口小部件的标签,用于
CRM中的摘要数据。也许技术频道会有一个标签
也显示来自Azure Dev Ops的当前工作项。正在制作应用
许多团队可用的可能是3rd 第三方应用可用
团队商店或内部开发的自定义商品。
与模板化团队合作所需的工作总结如下:
因此,这些都是由开发人员主导的。它为N’t好像模板是
例如存储在Teams服务中的某个地方-最终是开发人员
正在编写代码以将一些JSON传递给对Graph的调用。还有这个JSON
包含团队创建的所有细节–名称,说明,
频道设置,已安装的应用等。当我’一直在与
API,我’我发现有一些代码可以分解构建JSON
是有用的。特别地,将其分为两个部分似乎很有用:
- 对于每个正在创建的团队而言,事情都会发生变化(名称,说明,
拥有者)
..和.. - 保持不变并被视为模板一部分的内容 (渠道设置,已安装的应用程序等)
有关JSON结构和Graph调用的详细信息,请参见 //docs.microsoft.com/en-us/graph/api/team-post?view=graph-rest-beta。如文档所示,创建团队的示例JSON可能看起来像 像这样(这是来自文档的示例):
So, although we’重新构造此JSON并将其传递给Graph 开发人员可以选择:
- 创建一个包含不变部分的静态JSON文件,并将其视为 的“template”
- 编写一些代码以附加代表团队名称,描述的JSON 和所有者
您可能从上面的摘录中注意到,所有者需要 以GUID的形式指定,而不是您最有可能拥有的( 用户’s account name/e-mail address). This GUID is 的用户 identifier in AAD。因此,我们 ’ll also need a method in our code to lookup a 用户 帐户名称的GUID。
我们可以在团队模板中定义什么?
这里’s a summary:设置 | 例 |
---|---|
能见度 | 公共/私人 |
已安装的应用 | [应用目录中的任何应用] |
拥有者 | [List of 用户s] |
频道详情 | 标签,默认为收藏夹 |
会员设置 | 允许创建频道,允许添加应用等。 |
访客设定 | 允许创建频道,允许删除频道 |
有趣的设置 | 允许小字,贴纸和模因,内容分级 |
讯息设定 | 允许编辑/删除消息,允许团队和渠道 提及 |
编码
我想要的主要帮助程序代码是我可以调用的方法,该方法可以接受 团队名称,描述和所有者的参数,因此我可以称之为 多次。也许它可以成为某些背后的核心代码 从Excel文件读取以批量创建许多团队。也许会 在良好的最终用户自助服务请求过程中位于自定义表单的后面。 在身份验证方面,此代码使用仅应用程序身份验证来创建团队(使用AAD客户端ID和客户端密钥),而不是委派身份验证(在用户上下文中)。但是,您可以根据需要采用这两种方法。因此,我得出的核心代码是(在一个简单的控制台应用程序的上下文中显示了该代码-但您可以将核心方法放到所需的任何内容中):
您可能会注意到我有一个“TeamDetails”上课也做些 工作。这是操作JSON的代码所在,提供 将团队名称,描述和所有者附加到其他方法的方法 指定的详细信息:
当然,完整的代码可以在Github中找到– it’位于以下地址: //github.com/chrisobriensp/TeamsProvisioning
结果
现在,我们可以使用上面显示的CreateTeam()方法创建尽可能多的团队。将使用模板中指定的通道,选项卡和其他属性来创建每一个。例如,这是上面显示的示例JSON中定义的通道和选项卡:


概要
现在可以使用正确的工具集以一致的方式创建许多Microsoft团队,并且我们也可以使用仅应用程序权限来执行此操作(因此无需在存储高特权帐户的详细信息方面做任何麻烦的事情)。如果您开始使用Graph API方法来执行此操作,那么您可能会发现本文中的代码很有用。除了使用“标准”模板创建团队之外,请注意,Microsoft本身还提供了一些嵌入到服务中的特定基本模板-这些模板可能立即满足您的需求。目前,这些基本模板针对教育,零售和医疗保健场景-但是将来无疑会有更多。
无论哪种方式,我们都有一些新选项可用于推出具有特定功能的团队。希望作为基础的Graph方法很快就会出现在预览版中,因此可以在生产解决方案中使用此方法。