有没有办法让用户采取行动?

Ser*_* G. 7 websocket office365connectors microsoft-teams microsoft-flow

我正试图通过将演员传递给团队中的卡片中的HttpPOST动作来解决任务.因此,一旦用户点击了操作,我就可以使用输入来获取用户输入并以这种方式将其添加到POST操作中:

{
  "@type": "ActionCard",
  "name": "Comment",
  "inputs": [
    {
      "@type": "TextInput",
      "id": "comment",
      "isMultiline": true,
      "title": "Input's title property"
    }
  ],
  "actions": [
    {
      "@type": "HttpPOST",
      "name": "Action's name prop.",
      "target": "https://yammer.com/comment?postId=123",
      "body": "comment={{comment.value}}"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但我想添加一些用户信息(名称,电子邮件,等等).

我们有一些预定义的变量可以用吗?

附注:
1.连接器在包含演员名称的HttpPOST操作成功响应后将答复发布到卡上(因此看起来很有希望): 图片 2.连接器传递access_token给HttpPOST API端点,该端点包含一些信息(sub,tid).但是没有任何范围,所以即使我发现userprofileSTS 的正确端点我也无法调用它 图片
3.基于样本我能够使用ActionableMessageTokenValidator但结果没用:
图片
- sub只显示相同(我在令牌中看到)

相关问题:https://github.com/OfficeDev/outlook-actionable-messages-csharp-token-validation/issues/9

Jas*_*ton 0

我与可操作消息团队对此进行了调查,这是通过连接器(邮箱/组连接器或团队连接器)接收的可操作消息的限制。

执行该操作的用户由sub声明表示(sender与此无关)。据记录,对于连接器,sub包含对象 ID,而不是电子邮件地址。

执行操作的用户的身份。对于通过电子邮件发送的可操作消息,sub将是用户的电子邮件地址。对于连接器,sub将是执行操作的用户的 objectID。

这不打算改变。对于 Outlook,您可以转而通过电子邮件发送可操作的消息,并且您将收到sub电子邮件地址形式的声明。对于 Teams,使用连接器是唯一的选择。

关于sender声明为空:这也是连接器流程的限制。传入的 Webhook 会生成电子邮件(或 Teams 的聊天消息),但它并不是真正“发送”这些消息。因为它们没有被发送,所以发件人永远不会被标记在邮件上。确定发送者的逻辑看到一个空值,因此这就是放入令牌中的内容。说明这一点的最简单方法是查看 Outlook 中的“发件人”字段中的以下邮件之一,您会发现其中没有电子邮件地址:

在此输入图像描述