我们正在尝试创建一个使用团队、Flow和Assembla的审批工作流,并且遇到了一些麻烦。
我们已经成功地设置了几个部分,但是我们无法从一张卡片的团队中启动一个POST操作。
在团队中,我们可以使用传入的web钩子连接器成功地创建一张卡片。
这是使用流中的POST操作创建的以下JSON主体
{
"@@type": "MessageCard",
"@@context": "http://schema.org/extensions",
"summary": "This is the summary property",
"themeColor": "f46b42",
"sections": [
{
"startGroup": true,
"title": "**Pending Review**",
"activityTitle": "Ticket Title",
"activitySubtitle": "Requested by: ",
"facts": [
{ "name": "Date submitted:", "value": "06/27/2017, 2:44 PM" },
{ "name": "Details:",
"value": "This ticket is ready for review." }
]
},
{
"potentialAction": [
{
"@@type": "HttpPOST",
"name": "Approve",
"target": "ANOTHER-POST-URL-IS-HERE"
},
{
"@@type": "HttpPOST",
"name": "Deny",
"target": "ANOTHER-POST-URL-IS-HERE"
}
]
}
]
}
我们有另一个流url作为卡片上两个按钮的目标。为了测试这个url,我们可以通过邮递员成功地发布并继续审批工作流程。
当单击团队卡上的按钮时,post url处的流根本不会被通知。不触发对流的运行。在团队中,有一个非常通用的“提交更改有问题。请立即再试一次。”显示错误。
在研究之后,我在Microsoft页面上浏览了connectors.md文件,并注意到了文档中这个可爱的部分。
我觉得奇怪的是,在他们下面提到POST操作可能不受支持,文档详细地显示了在团队的卡片中使用POST和ActionCard操作的示例。
所以我的问题是,有什么方法可以让HttpPOST操作从一个自定义卡片的团队工作到Microsoft URL??
谢谢!
更新: 在进一步的测试中,我们已经确定HttpPOST操作可以与除Microsoft请求url之外的任何post url一起工作。它们是超长的urls,所以这可能和它有关吗? 下面是一个流请求url示例。 L6aqgcaqvCOKUWOf2li-xQ 在web浏览器中运行团队时,我们能够首先看到请求发送到api.teams.skype.com url,并返回一个通用的"ProviderError“。其他非流urls也做同样的,但返回成功。
发布于 2017-09-27 22:39:25
这对我们来说太伤脑筋了--正如你所推测的,这应该有效的。团队、Flow和Outlook团队今天对此进行了故障排除,并了解了发生了什么。
您要发布的URL,https://prod-43.westus.logic.azure.com[...]
有一个嵌入的承载令牌( sig
参数在URL中的值)。当您通过CURL、Fiddler、Postman等发布到该URL时,它会工作,因为该令牌是存在的。
但是,当您单击可操作消息中的HttpPOST按钮时,Outlook在header中添加了它自己的JWT令牌,这意味着HttpPOST在URL中有一个sig=
承载令牌,在header中有一个JWT令牌。Flow检测到这一点,并将HTTP视为无效(虽然我们目前不支持JWT令牌,但我们计划将这种情况视为无效,以保持向前兼容性)。
这个用例将在将来起作用。同时,一个解决办法是将可操作的消息按钮发布到您的端点,例如https://yoursite.com/accept
和https://yoursite.com/deny
(根据您的需要验证JWT ),并让这些端点POST直接在没有JWT的情况下流动。
如果成功的话请告诉我们。
顺便说一句,您发现的文本是一个文档错误,此后一直是固定:
很抱歉给你造成了混乱。
https://stackoverflow.com/questions/46288116
复制