office365 - outlook.com rest api 不正确的组织者电子邮件

标签 office365 office365api outlook-restapi office365-restapi

当用户在 outlook.com 共享日历中创建事件时,REST API 会告知日历所有者是组织者。

我在 Outlook.com 中有一个日历,我正在通过日历订阅将所有日历事件同步到我的服务器。当有事情发生时,我会收到通知,通知中有 url,我可以用它来获取新创建事件的对象。

我现在在 outlook.com 中有另一个用户,我已将我的日历共享给他。当他在那个共享日历中做某事时,我会收到通知,但我不会收到任何关于谁创建了新事件的信息。

组织者始终是我的用户,出于某种原因,事件对象名称很好,但电子邮件地址类似于 outlook-[nonsense]@outlook.com(这不是我的电子邮件地址)。我的真实电子邮件地址更像是 lehtu@outlook.com

请参阅此图片以进行说明:

enter image description here

响应的组织者部分:

Organizer:
 { EmailAddress:
    { Name: 'Encode Testing',
      Address: 'outlook_2FD8F7EE77CEC8B8@outlook.com' } },

应用程序授权仅由我的用户(图中名称为 Testing)进行。

这是我的证书:

this.scopes = [
    'openid',
    'offline_access',
    'https://outlook.office.com/calendars.readwrite'
];

重点是在我的帐户下有更多的日历,我会分享给其他人。但是我必须将创建事件的信息输入到我的应用程序中。

有什么想法吗?

最佳答案

预计共享日历上的事件组织者始终是该日历的所有者。本质上,Testing2 代表 Testing 创建了事件,但 Testing2 并未成为组织者。您看到的用于测试的奇怪电子邮件地址是他的基础 outlook.com 电子邮件,这是由于您使用的是自定义域而添加的。

不幸的是,今天 API 似乎并没有直接公开有关实际创建事件的人的信息。这可能是在 UserVoice 上建议的一个很好的功能.但是,您可以间接访问它。

只要 API 不直接公开属性,您就可以查看 Exchange 服务器公开的基础属性。我通常在 MS-OXPROPS 中查找它们医生。我找到了 PidTagCreatorName ,这看起来可能有助于获取您想要的数据。

您通常可以通过扩展(通过 $expand)项目的 SingleValueExtendedProperties 集合来访问这些基础属性。因此,如果您对以下内容执行 GET:

https://outlook.office.com/api/v2.0/me/events?
$expand=SingleValueExtendedProperties($filter=PropertyId eq 'String 0x3FF8')

您会看到返回的结果类似于:

{
    ...
    All the normal props you usually see
    ...
    "SingleValueExtendedProperties": [
        {
            "PropertyId": "String 0x3ff8",
            "Value": "Jason Johnston"
        }
    ]
}

关于office365 - outlook.com rest api 不正确的组织者电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089878/

相关文章:

c# - Office 365 Api c# Windows 服务

javascript - 使用 Javascript API 将行添加到 Excel 中的现有表

outlook - 仅在 Web 上启用 Outlook Web 插件

office365 - 在所有文档中保存 OfficeJS 加载项状态?

php - 是否可以使用 Office 365 在线打开存储在 Azure 上的文档?

office365 - 使用图形 API 读取可恢复项目隐藏文件夹

email - 防止电子邮件扫描器激活 "unsubscribe"链接的策略

python - 使用 python api O365 接收电子邮件

azure - 当逻辑应用连接无效时如何收到警报

office365 - 修改重复序列中的单个事件不会反射(reflect)在从 Rest API 读取的数据中