0

我有一个团队消息扩展,它返回一个任务响应,它是一个中等大小的嵌入式 Web 视图 iFrame

  • 这是成功的;包括在频道中添加了一个自定义选项卡以及对 Microsoft Graph 的其他漂亮的魔术调用。

我很困惑的是怎么做(这可能是我不理解事物的命名)

  1. 将“某物”插入到消息/帖子流中,这是指向新创建的选项卡的链接......就像您在创建“configureTabs”样式选项卡时得到的一样——聊天中有一个友好的消息(帖子)指向这个新标签。

    • 使用 Microsoft Graph 执行此操作还是通过 Bot 返回?

    • 进行通信的代码可能是其他地方的不同服务,它正在异步运行......所以它需要与某个有上下文的东西进行通信。如果这是带有某些参数的 Bot 或带有参数的 Microsoft Graph,则感到困惑。

  2. 如何将图像(而不是指向选项卡的链接)插入到消息/帖子流中 - 但显示图像不是指向某个随机 URL 的链接(即:)

    • 找不到任何这样做的样本;再次,将按照上述异步;但是消息的格式是卡片还是自定义的?
4

2 回答 2

0

因此,为了清楚起见,任务响应与选项卡不同,尽管它们最终可能托管在同一个后端 Web 应用程序中(尽管您的 TAB 可以实际使用 Teams 显示您的任务响应弹出窗口/iframe javascript库)。

除此之外,为了将某些内容发布回频道,例如创建选项卡时,有两种方法可以这样做:

  1. 首先是使用 Graph Api 的Create ChatMessage选项(此链接仅适用于频道 - 不确定您的选项卡/任务是否也适用于群聊和/或 1-1 聊天)。
  2. 第二个选项是让机器人也成为您的应用程序的一部分。然后,当您准备向频道发送内容时,您实际上是在发送称为“主动消息传递”的内容。您需要有特定的参考数据来执行此操作,当机器人安装到频道中时会获得这些数据(“对话参考”、“ServiceUrl”等)。我在以编程方式向 Microsoft Teams 中的机器人发送消息的回答中对此进行了更多描述

关于发送图像,就如何发送图像而言,上述任何一种方法在这里也都适用。至于图像的发送您需要使用一种“卡片”(基本上“更丰富”的消息,而不仅仅是原始文本)。您可以在卡片介绍中了解更多信息,并在卡片参考处了解团队卡片的类型。有一些可用于发送图像,这取决于您希望卡片执行的其他操作。例如,自适应卡片可以发送图像、一些文本和某种操作按钮。

希望有帮助

于 2020-01-24T13:45:24.007 回答
0

为未来的读者闭环。

我使用了以下 Microsoft Graph API 文档和上面的帖子,这是有效的:在频道中创建 chatMessage从 SDK 创建自定义 Microsoft Graph 调用

自定义图形调用(因为在此响应时未在 .NET SDK 中实现)看起来像:

var convoReq = $"https://graph.microsoft.com/beta/teams/{groupId}/channels/{channelId}/messages";
var body = this.TeamsMessageFactory(newCreatedTabUrl, anotherstring).ToJson();
var postMessage = new HttpRequestMessage(HttpMethod.Post, convoReq)
{
   Content = new StringContent(body, System.Text.Encoding.UTF8, "application/json")
};
await _graphClient.CurrentGraphClient.AuthenticationProvider.AuthenticateRequestAsync(postMessage);
var response = await _graphClient.CurrentGraphClient.HttpProvider.SendAsync(postMessage);

if (response.IsSuccessStatusCode)
{
     var content = await response.Content.ReadAsStringAsync();
     return true;
}

groupId和在channelId别处可以找到;这TeamsMessageFactory只是一些为 POST 请求序列化 C# 对象图的样板,详见在 通道中创建 chatMessage

于 2020-02-03T08:13:04.747 回答