可点击的活动提要通知

问题描述 投票:0回答:1

我们构建了一个自定义机器人服务应用程序,它利用 BotFramework 提供的 REST 端点以及一些图形 API 调用。

Graph API 记录了发送活动源通知的能力,我们已经工作得很好。

有什么方法可以让通知可点击,以便更有用吗?最初我假设主题中的 webUrl key/val 可以实现这一目标,但无论是使用注释掉的代码(在函数中运行,因此它在 .js 文件中有效)还是下面的代码,当用户单击时,不会发生任何事情。

提示?建议?我们是否误解了活动源通知的功能?

我们通过图形 API 将以下有效负载传递到 /appCatalogs/teamsApps/${this.Config.TEAMS_APP_EXTERNAL}

虽然通知确实到达并执行了它们应该执行的所有操作,但单击通知时,它不会将它们带到任何地方。

{
      topic: {
        // source: 'entityUrl',
        // value: `https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/${this.Config.TEAMS_APP_EXTERNAL}`
        source: 'text',
        value: 'I am the source',
        webUrl: 'https://teams.microsoft.com/l/message/'
      },
      activityType: 'generic',
      previewText: {
        content
      },
      recipients: [
        {
          '@odata.type': 'microsoft.graph.aadUserNotificationRecipient',
          userId
        }
      ],
      templateParameters: [
        {
          name: 'text',
          value
        }
      ]
    }
botframework microsoft-teams
1个回答
0
投票

您可以在通知负载的 webUrl 属性中包含深层链接,以使活动源通知可单击。 在代码片段中,您已将 webUrl 属性设置为“https://teams.microsoft.com/l/message/”。此 URL 不提供任何特定的目的地或内容供用户导航到。您需要将此 URL 替换为与应用程序中所需位置或内容相对应的有效深层链接。 webUrl: 'https://teams.microsoft.com/l/entity/{appId}/{entityId}?webUrl={encodedWebUrl}' {appId}:您的 Teams 应用的 ID。您可以在 Teams 应用工作室或 Teams 管理中心中找到它。 {entityId}:您要导航到的应用内特定实体或内容的 ID。 {encodedWebUrl}:用户单击通知时要打开的 Web URL 的 URL 编码版本。 将 {appId}、{entityId} 和 {encodedWebUrl} 替换为适合您的应用的值。 例如,如果您想使用 URL https://example.com/myapp/page1 导航到应用程序中的特定页面,您可以按如下方式构造深层链接 URL: webUrl: 'https://teams.microsoft.com/l/entity/{appId}/{entityId}?webUrl=https%3A%2F%2Fexample.com%2Fmyapp%2Fpage1' 通过在 webUrl 属性中包含有效的深层链接,单击活动源通知会将用户带到应用程序中的指定位置或内容。

© www.soinside.com 2019 - 2024. All rights reserved.