发送活动源通知
Microsoft Teams 活动源通知通过通知更改来帮助用户评估需要注意的项目。 若要将活动源通知功能扩展到应用,请使用 Microsoft Graph 中的活动源通知 API。
活动源广播的主要功能包括:
- 提供增强的体验。
- 使用户保持最新状态。
- 广播所有成员的消息。
- 显示活动源通知。
- 广播成员可用的详细信息。
本分步指南可帮助你使用活动源通知广播消息并通知组织的所有成员。 可以看到以下输出:
先决条件
确保安装以下工具并设置开发环境:
安装 | 用于使用... | |
---|---|---|
Visual Studio 2022 | 可以在 Visual Studio 2022 中安装企业版,并安装 ASP.NET 和 Web 开发工作负载。 使用最新版本。 | |
.NET Core SDK 版本 3.1 | 用于本地调试和 Azure Functions 应用部署的自定义绑定。 使用最新版本或安装可移植版本。 | |
开发隧道 | Teams 应用功能 (对话机器人、消息扩展和传入 Webhook) 需要入站连接。 隧道将开发系统连接到 Teams。 开发隧道是一种功能强大的工具,用于安全地将 localhost 打开到 Internet 并控制谁有权访问。 Visual Studio 2022 版本 17.7.0 或更高版本中提供了开发隧道。 或者 ,还可以使用 ngrok 作为隧道,将开发系统连接到 Teams。 对于仅包含选项卡的应用,这不是必需的。 此包使用 npm devDependencies) 安装在项目目录 (中。 |
注意
下载 ngrok 后,注册并安装 authtoken。
确保具有以下帐户并设置开发环境:
- Microsoft 帐户。
- 必须为收件人安装 Teams 应用,无论是个人安装,还是在团队或聊天中。
- 用于发送和接收通知的租户 ID 必须匹配。
设置 Teams 开发租户
租户类似于空间或容器,你可以在 Teams 中为组织聊天、共享文件和运行会议。 还可以上传和测试自定义应用。
检查自定义应用上传选项
创建应用后,必须在 Teams 中加载应用,而无需分发它。 函数称为自定义应用上传。 登录到 Microsoft 365 帐户以查看此选项。
注意
自定义应用上传对于在 Teams 本地环境中预览和测试应用是必需的。 启用自定义应用上传,以在本地 Teams 中预览和测试应用。
是否已拥有租户,并且是否具有管理员访问权限? 让我们来看看你是否真的这样做了!
在 Teams 中验证自定义上传应用:
在 Teams 客户端中,选择“ 应用” 图标。
选择“管理应用”。
选择 “上传应用”。
查找“ 上传自定义应用”选项。
注意
如果无法上传自定义应用,请联系 Teams 管理员。
创建免费的 Teams 开发人员租户 (可选)
如果没有 Teams 开发人员帐户,可以免费获取它。 加入 Microsoft 365 开发人员计划!
选择“ 立即加入 ”,然后按照屏幕上的说明进行操作。
从欢迎屏幕中选择 “设置 E5 订阅 ”。
设置管理员帐户。 完成后,将显示以下屏幕。
使用新的管理员帐户登录到 Teams。 现在可以选择 “上传自定义应用”。
设置本地环境
选择“ 代码”。
在下拉菜单中,选择“ 使用 GitHub Desktop 打开”。
选择“ 克隆”。
使用 Microsoft Entra ID 注册 Teams 身份验证 SSO
以下步骤可帮助你在 Azure 门户中创建和注册 Teams 身份验证 SSO:
- 在“应用注册”下创建和注册新应用程序。
- 使用 ngrok 创建到 Web 服务器终结点的隧道。
添加应用注册
转到 Azure 门户。
选择“应用注册”。
选择“ + 新建注册”。
输入应用的名称。
选择 任何组织目录中的帐户 (任何Microsoft Entra ID 租户 - 多租户) 。
选择“注册”。
应用在 Entra ID Microsoft注册。 此时会显示应用概述页。
注意
保存 应用程序 (客户端的应用 ID) ID 和 目录 (租户) ID 以供进一步使用。
创建隧道
打开 Visual Studio。
选择 “创建新项目”。
在搜索框中,输入 “ASP.NET”。 在搜索结果中,选择“ ASP.NET 核心 Web 应用”。
选择 下一步。
输入 “项目名称 ”,然后选择“ 下一步”。
选择“创建”。
此时会显示概述窗口。
在调试下拉列表中,选择“ 开发隧道 (无活动隧道) >创建隧道...”。
将出现一个弹出窗口。
在弹出窗口中更新以下详细信息:
- 帐户:输入Microsoft或 GitHub 帐户。
- 名称:输入隧道的名称。
- 隧道类型:从下拉列表中选择“ 临时”。
- 访问:从下拉列表中选择“ 公共”。
选择“确定”。
此时会显示一个弹出窗口,显示已成功创建开发隧道。
选择“确定”。
可以在调试下拉列表中找到已创建的隧道,如下所示:
选择 F5 以在调试模式下运行应用程序。
如果出现 “安全警告 ”对话框,请选择“ 是”。
将出现一个弹出窗口。
选择 继续。
开发隧道主页将在新的浏览器窗口中打开,开发隧道现在处于活动状态。
转到 Visual Studio,选择“ 查看 > 输出”。
在 “输出 控制台”下拉菜单中,选择“ 开发隧道”。
输出控制台显示开发隧道 URL。
添加应用程序 ID URI
在左窗格中的 “管理”下,选择“ 公开 API”。
在 “应用程序 ID URI”旁边,选择“ 添加”。
以 或
api://your-ngrok-domain/botid-{AppID}
格式更新应用程序 ID URIapi://your-devtunnel-domain/botid-{AppID}
,然后选择“保存”。下图显示了域名:
注意
如果使用 ngrok 等隧道服务,请确保在 ngrok 子域更新时更新值。 例如, api://f631****.ngrok.io/c4e88a5d-e3d4-47f4-accb-0ef9de3bce8a
其中 f631****.ngrok.io
是新的 ngrok 子域名称。
添加范围
在左窗格中的 “管理”下,选择“ 公开 API”。
选择“ + 添加范围”。
输入 “access_as_user ”作为 “作用域名称”。
在 “谁可以同意?”下,选择“ 管理员和用户”。
更新其余字段的值,如下所示:
输入 Teams 可以访问用户的个人资料 作为 管理员同意显示名称。
输入 “允许 Teams 以当前用户身份调用应用的 Web API ”作为 “管理员同意说明”。
输入 Teams 可以访问用户配置文件,并代表用户发出请求 作为 用户同意显示名称。
输入“启用 Teams”以调用此应用的 API,其权限与用户同意说明相同。
确保将“状态”设置为“已启用”。
选择“添加作用域”。
下图显示了字段和值:
注意
作用域名称必须与末尾追加的应用程序 ID URI
/access_as_user
匹配。
添加客户端应用程序
在左窗格中的 “管理”下,选择“ 公开 API”。
在 “授权的客户端应用程序”下,确定要为应用的 Web 应用程序授权的应用程序。
选择“ + 添加客户端应用程序”。
添加 Teams 移动或桌面和 Teams Web 应用程序。
对于 Teams 移动版或桌面版:输入 客户端 ID 作为
1fec8e78-bce4-4aaf-ab1b-5451cc387264
。对于 Teams Web:输入 客户端 ID 作为
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
。
选中“ 授权的范围 ”复选框。
选择“添加应用程序”。
下图显示了 客户端 ID:
添加 API 权限
在左窗格中的 “管理”下,选择“ API 权限”。
选择“ + 添加权限”。
选择 Microsoft Graph。
选择“委托的权限”。
选择以下权限:
Directory.Read.All
Directory.ReadWrite.All
TeamsActivity.Send
TeamsAppInstallation.ReadForUser
TeamsAppInstallation.ReadWriteForUser
User.Read
注意
用户。 默认情况下,读取处于启用状态。
选择 添加权限。
选择“ + 添加权限”。
选择 Microsoft Graph。
选择“应用程序权限”。
选择以下权限:
- Directory.Read.All
- TeamsActivity.Send
- TeamsAppInstallation.ReadForUser.All
选择 添加权限。
确保向管理员授予所需权限的同意。
确保向管理员授予所需权限的同意。
注意
- 如果未向应用授予 IT 管理员同意,用户必须在首次使用应用时提供同意。
- 仅当 Microsoft Entra 应用注册到其他租户中时,用户才需要同意 API 权限。
添加 Web 身份验证
在左窗格中的 “管理”下,选择“ 身份验证”。
选择 “添加平台>单页应用程序”。
通过将 追加
auth-end
到完全限定的域名,输入应用的重定向 URI。 例如,https://your-devtunnel-domain/auth-end
或https://your-ngrok-domain/auth-end
。在 “隐式授予和混合流”下,选中“ 访问令牌 和 ID 令牌 ”复选框。
选择“配置”。
在 “Web”下,选择“ 添加 URI”。
输入
https://token.botframework.com/.auth/web/redirect
。选择“保存”。
创建客户端密码
在左窗格中的 “管理”下,选择“ 证书 & 机密”。
在 “客户端机密”下,选择“ + 新建客户端密码”。
此时会显示 “添加客户端机密 ”窗口。
输入 “说明”。
选择“添加”。
在“ 值”下,选择“ 复制到剪贴板 ”以保存客户端密码值以供进一步使用。
设置应用设置
转到克隆存储库中的 appsettings.json 文件。
在最新版本的 Visual Studio 中打开 appsettings.json 文件并更新以下信息:
设置为
"MicrosoftAppId"
机器人 Microsoft应用 ID。设置为
"TenantID"
“目录 (租户) ID”。将 设置为
"MicrosoftAppPassword"
机器人的客户端机密 ID 值。将 设置为
"BaseUrl"
[WebAppDomainName]
。
设置清单文件
转到克隆存储库中的 manifest.json 文件。
在最新版本的 Visual Studio 中打开 manifest.json 文件,然后进行以下更改:
将 的所有匹配项
<<Microsoft-App-ID>>
替换为机器人的 Microsoft 应用 ID。将 的所有匹配项
<<Base_URL>>
替换为完全限定的域名。设置为
validDomains
[WebAppDomainName]
。
生成并运行服务
打开 Visual Studio。
转到 “文件>打开>项目/解决方案...”。
从 csharp 文件夹中选择ActivityFeedBroadcast.sln文件。
选择 “打开”。
按 F5 运行项目。
如果出现以下对话框,请选择“是”:
此时会打开一个网页,并显示消息 “机器人已准备就绪!
将活动源广播应用添加到 Teams
在克隆的存储库中,转到 graph-activity-feed-broadcast>csharp>ActivityFeedBroadcast>AppManifest。
使用 AppManifest 文件夹中存在的以下文件创建 .zip 文件:
manifest.json
outline.png
color.png
在 Teams 客户端中,选择“ 应用” 图标。
选择“管理应用”。
选择“ 将应用提交到组织”。
选择“ 打开 ”以上传在 AppManifest 文件夹中创建的 .zip 文件。
选择“添加”。
在 Teams 中与应用交互
让我们在 Teams 中与应用交互!
BroadcastTab 显示消息标题和消息说明。
输入邮件标题和说明**。
选择“ 发送消息”。
成功广播的消息显示。
活动源通知显示在具有相同租户 ID 的收件人的“ 活动 ”选项卡中。
选择邮件时会显示消息详细信息。
完成挑战
你想出了这样的东西吗?
恭喜!
你已完成本教程以开始使用 活动源广播 应用!
你有关于此部分的问题? 如果有,请向我们提供反馈,以便我们对此部分作出改进。