You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带OAuth认证的Azure Logic App HTTP Webhook订阅Microsoft Graph calldetailrecords问题咨询

基于Azure Logic App订阅Microsoft Graph calldetailrecords webhook的实现方案

内置HTTP Webhook组件确实没有直接配置Bearer令牌的参数,我们可以拆分订阅全流程手动实现,已经有大量生产环境落地的案例,具体操作如下:

  • 第一步:获取Microsoft Graph访问令牌
    你可以使用Logic App内置的Azure AD连接器的「获取令牌」动作,也可以直接用HTTP动作请求https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token端点获取令牌,需要提前给用到的应用身份授予CallRecords.Read.All应用权限并完成管理员同意。
  • 第二步:手动调用订阅创建接口
    不使用内置的HTTP Webhook组件,直接调用Graph的订阅创建接口即可携带Bearer令牌:新增普通HTTP动作,方法选POST,请求地址为https://graph.microsoft.com/v1.0/subscriptions,请求头添加Authorization字段,值为Bearer {上一步获取的访问令牌},请求体参考如下格式:
{
  "changeType": "created",
  "notificationUrl": "{你的Logic App HTTP触发器的访问地址}",
  "resource": "/communications/callRecords",
  "expirationDateTime": "{有效期最长为当前时间加4230分钟(约3天)}",
  "clientState": "{自定义的校验字符串,用于后续验证通知来源合法性}"
}
  • 第三步:添加HTTP触发器接收通知
    给Logic App添加「当收到HTTP请求时」触发器,首先要完成Graph的首次订阅验证:如果收到的请求带validationToken查询参数,直接返回200状态码,且将validationToken的值作为响应正文返回即可完成验证。后续触发的请求就是calldetailrecords的变更通知,可直接提取数据做后续处理。
  • 第四步:添加订阅续订逻辑
    由于Graph订阅最长有效期只有4230分钟,你可以新增一个定期运行的触发器(建议每2天运行一次),调用PATCH https://graph.microsoft.com/v1.0/subscriptions/{创建订阅后返回的订阅ID}接口,携带合法的Bearer令牌更新expirationDateTime字段,即可延长订阅有效期,无需重复创建。

注意:如果需要订阅历史的通话记录,还需要在创建订阅之后额外调用/communications/callRecords接口拉取存量数据,webhook仅会推送订阅生效之后新生成的通话记录。

内容的提问来源于stack exchange,提问作者Cyriel Lamerigts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:06:03