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

如何在Outlook插件中通过onAppointmentAttendeesChangedHandler获取参会人详情

Outlook插件参会人变更事件无法获取参会人详情排查方案

一、检查manifest.xml配置

  • 权限配置确认:确保已声明足够的权限,在<Permissions>节点中至少包含ReadMailbox(推荐ReadWriteMailbox),缺失权限会导致无法读取参会人数据。
  • 事件激活配置验证:确认EventBasedActivation扩展点正确注册了AppointmentAttendeesChanged事件:
    <ExtensionPoint xsi:type="EventBasedActivation">
      <Event Type="AppointmentAttendeesChanged" FunctionName="onAppointmentAttendeesChangedHandler" />
      <!-- 其他事件... -->
    </ExtensionPoint>
    
    同时检查DesktopFormFactor下的FunctionFile路径是否指向正确的launchevent.js文件,FunctionName与js中的函数名完全一致。

二、修正launchevent.js事件处理逻辑

在事件触发时,必须使用异步方法getAsync获取参会人数据,同步访问属性可能因上下文未就绪导致失败,同时务必调用event.completed()告知Office事件处理完成:

function onAppointmentAttendeesChangedHandler(event) {
  // 异步获取参会人列表
  Office.context.mailbox.item.attendees.getAsync((asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
      const attendees = asyncResult.value;
      // 处理参会人数据,比如遍历打印
      attendees.forEach(attendee => {
        console.log(`姓名: ${attendee.displayName}, 邮箱: ${attendee.emailAddress}`);
      });
    } else {
      console.error(`获取参会人失败: ${asyncResult.error.message}`);
    }
    // 必须调用此方法完成事件处理
    event.completed();
  });
}

三、其他排查点

  • 客户端版本兼容性:确认使用的Outlook客户端(桌面/网页版)支持Event-Based Activation及AppointmentAttendeesChanged事件,建议使用Office 365最新版本或Outlook 2019及以上。
  • 测试场景正确性:确保在**会议(Appointment)**而非普通邮件中测试添加/移除参会人操作,部分场景下需等待会议保存后事件才会触发。

内容的提问来源于stack exchange,提问作者Shiv Yadav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:17:19