Jos*_*ong 7 office365connectors microsoft-teams microsoft-flow
我们正在尝试使用Teams,Flow和Assembla创建批准工作流程,并且遇到了一些麻烦.
我们已成功设置了一些部分但是我们无法从团队中的卡片发起POST操作.
在团队中,我们可以使用传入的webhook连接器成功创建一张卡片.

这是使用Flow中的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"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我们有另一个Flow url作为卡上两个按钮的目标.要测试此网址,我们可以通过POSTMAN成功发布并继续审批工作流程.
单击团队卡上的按钮时,邮件网址上的流程根本不会被通知.不会触发Flow上的运行.在团队中非常通用"提交更改时出现问题.请在一分钟后重试." 显示错误.
在研究之后,我浏览了Microsoft Teams github页面上的connectors.md文件,并注意到文档中这个可爱的部分
我觉得奇怪的是,在他们下面提到POST操作可能不受支持,文档的篇幅很长,以显示在团队卡中使用POST和ActionCard操作的示例.
所以我的问题是,有没有办法让HttpPOST操作从团队中的自定义卡工作到Microsoft Flow POST URL?
谢谢!
更新:
经过进一步测试,我们已经确定HttpPOST操作可以处理我们可以提出的除 Microsoft Flow Request URL 之外的任何帖子网址.它们是特别长的网址,所以也许它与它有关?
这是一个示例流请求网址.
Run Code Online (Sandbox Code Playgroud)https://prod-43.westus.logic.azure.com:443/workflows/f86b928acd3d4ecab849f677974f7816/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=ZBxr5GFKQhMp4JXWGmec_L6aqgcaqvCOKUWOf2li-xQ在Web浏览器中运行团队时,我们能够看到请求首先发布到api.teams.skype.com url并返回通用"ProviderError".其他非流动网址也会这样做,但会返回成功.
这对我们来说是一个令人头疼的问题 - 正如你所推测的那样,这应该是有效的.Teams,Flow和Outlook团队今天对此进行了问题排查,并了解了发生了什么.
您要发布到的URL https://prod-43.westus.logic.azure.com[...]具有嵌入式承载令牌(sigURL中参数的值).当您通过CURL,Fiddler,Postman等发布到该URL时,它会起作用,因为该令牌存在.
但是,当您单击可操作消息中的HttpPOST按钮时,Outlook会在HTTP标头中添加自己的JWT标记,这意味着HTTP POST 在URL中同时具有sig=承载标记和HTTP标头中的JWT标记.Flow检测到这一点并拒绝HTTP POST为无效(我们目前不支持JWT令牌,我们计划,并将此案例视为无效以保持向前兼容性).
这个用例将来会有用.与此同时,尝试的一种解决方法是将可操作的消息按钮POST到您的端点,例如https://yoursite.com/accept和https://yoursite.com/deny(根据您的需要验证JWT)并将这些端点直接POST到Flow而不使用JWT.
如果有效,请告诉我们.
顺便说一下,你找到的文本是一个文档错误,后来修复了:

对困惑感到抱歉.
| 归档时间: |
|
| 查看次数: |
2974 次 |
| 最近记录: |