将 Office365 REST 日历 ID 映射到 EWS 日历项目 ID

2024-02-06

使用交换推送通知 https://msdn.microsoft.com/en-us/library/aa566188(v=exchg.80).aspx我一直在创建一项同步 Office365 用户的日历数据的服务。我一直在使用以下组合Office365 日历 REST API https://msdn.microsoft.com/en-us/office/office365/api/calendar-rest-operations(获取和管理日历)和 EWS API(订阅日历更改)。

我注意到最近 MS 为其订阅端点引入了预览 API。不过,这个 API 仍处于预览模式,我想暂时避免使用它。

一旦我完成了所有设置,问题是我无法在日历事件资源 (REST) https://msdn.microsoft.com/office/office365/APi/calendar-rest-operations#GeteventsGetaneventRESTEWS 日历项目资源 https://msdn.microsoft.com/en-us/library/office/aa564765(v=exchg.150).aspx这是在推送通知上返回的。这ItemId对于 CalendarItem 和Id对于 REST 事件有所不同。

当尝试更新我从 REST API 保存的事件时,这证明是有问题的,因为我找不到关联两者的好方法。

任何帮助是极大的赞赏!

Edit经过进一步挖掘,我实际上发现从 REST API 返回的日历(GET /calendars) 看起来是MessageEWS 层次结构中的项目。因此,此端点不是返回实际的文件夹 ID,而是返回属于某个名为“公共视图”的文件夹的项目 ID。

我不确定为什么要这样设计,但 base64 编码 ID 的差异似乎非常小。我只是仍然找不到将两者联系起来的好方法。


事实证明,由于通过订阅 EWS 推送通知,我的 ID 不匹配Exchange2007版本。Exchange2007_SP1以及其他具有彼此兼容的 EwsId,因此这包括 Office365。

更换-字符与/ and _字符与+允许我正确调用 Office365 API 资源。

最后,当拨打电话时获取日历 https://msdn.microsoft.com/office/office365/APi/calendar-rest-operations#GetcalendarsGetacalendarcollectionREST,API实际上正在返回Message位于以下的项目类型Common Views文件夹。因此,当尝试使用这些 ID 进行订阅时,EWS API 会抱怨我向其发送了 ItemID,而不是文件夹 ID。

谢天谢地我发现通过以下方式向 REST API 发出请求GET /calendars/ews_folder_id一旦你正确地将 ID 转换为 URI 安全类型(参见上面的转换),实际上就可以工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Office365 REST 日历 ID 映射到 EWS 日历项目 ID 的相关文章

随机推荐

  • 具有摊销 O(1) 删除和 O(log n) 搜索的数据结构

    我需要一个支持两种操作的数据结构 删除和搜索 现在 删除操作应该运行在摊销 O 1 时间 而搜索应该运行在O log n time 搜索操作应该如下工作 查找指定的值 如果它在这里 则返回值本身 否则 返回最接近的较大值 返回有序后继 这个
  • 具有输入数组的方法

    我想要一种方法 可以像 NSArray 一样放置所需数量的参数 id initWithObjects id firstObj NS REQUIRES NIL TERMINATION 然后我可以使用 NSArray array NSArray
  • 获取 Boto3 中具有特定标签和值的 EC2 实例列表

    如何使用标签和值过滤 AWS 实例boto3 import boto3 ec2 boto3 resource ec2 client boto3 client ec2 response client describe tags Filters
  • 找到svg形状的中心

    我在用着svgjs创造我的形状 如何找到 svg 形状的中心点并在那里添加元素 就我而言 是一个红点 我在文档中找不到任何有助于解决这种情况的方法或内容的信息 你可以使用该方法getBBox https docs webplatform o
  • 实体框架异常“底层提供程序在打开时失败”

    我创建了一个 Windows 服务 它侦听 TCP IP 端口并使用实体框架将接收到的数据保存在数据库中 大多数时候它工作正常 但有时会抛出异常 底层提供程序打开失败 在数据库中保存数据 这是我的异常详细信息 Exception 2 27
  • 如何在tf.data.Dataset.map()中使用Keras的predict_on_batch?

    我想找到一种使用 Keras 的方法predict on batch inside tf data Dataset map in TF2 0 假设我有一个 numpy 数据集 n data 10 5 my data np random ra
  • Ajax推送系统

    在我自己的系统中 我有一个PHP页面显示我通过在线网上商店出售的所有商品 从最新交易到第一笔交易 我希望每当人们从我这里购买东西时 此页面就会自动更新 我可以做AJAX打电话给每个5几秒钟来检查我数据库中的订单 但这似乎是 1980 年 或
  • 在 Windows 10 分配的访问权限中运行 Chrome kiosk 模式

    好消息是Windows 10分配访问支持运行桌面应用程序 Win 8 1仅支持运行通用应用程序 我想在命令行中使用 kiosk 运行 Chrome 的 kiosk 模式 本文底部有教程 https technet microsoft com
  • 处理单例实例 (C#)

    如果单例实现了 IDisposable 那么处置和重新创建实例的正确方法是什么 一种方法是保留 dispose 标志并在 Instance 属性中检查它 但我不确定这是执行此操作的正确方法 一个简单的例子 public sealed cla
  • 盲目地用代替可以吗?

    Note I know b 是展示性的并且 span style font weight none span b
  • 在 Mac OSX 下检测连接的 USB 设备

    首先声明 对于 Mac 编程 我是一个新手 然而 我有一项任务需要与设备进行 USB 通信 所以我想我将从基本的东西开始 我从here https developer apple com library mac samplecode USB
  • 如何在 moment.js 中获取月份的简称?

    我已成功找到月份的全名 但我想要月份的简称 谁能帮我 我正在使用 Moment js 我已成功找到月份 但我想要简短的形式这是我的代码 var date var Month moment date YYY MM DD format DD M
  • 在 magento 前端显示缺货状态

    我需要在产品页面 前端 上显示当前商品仅用于延期交货 并且没有库存 目前 我的库存显示了可用数量 而缺货的产品则没有显示任何内容 有谁知道我可以在 view phtml 文件中放入一个代码 该代码只会在那些设置为缺货的产品上显示一条消息 T
  • 我应该使用 Java 中的哪个线程池?

    有大量的任务 每个任务都属于一个组 要求是每组任务应该像在单线程中执行一样串行执行 并且在多核 或多CPU 环境中吞吐量应该最大化 注意 组的数量也与任务数量成正比 最简单的解决方案是使用 ThreadPoolExecutor 并同步 或锁
  • sklearn:关闭警告

    当我适合的时候sklearn s LogisticRegression使用 1 列 pythonpandas DataFrame not a Series对象 我收到此警告 Library Python 2 7 site packages
  • 设置一个二维数组,稍后更改大小 - C

    是否可以在 C 中声明一个二维数组 然后再设置其大小 我知道在 C 中你必须处理内存等问题 但尽管我进行了所有搜索 但我找不到这个问题的答案 我当前的例子是 int boardsize linewin char array 1 1 boar
  • .xib 中的 UITableView 没有内容属性

    XCode 4 2 iOS 5 为了重用表格视图 带有导航栏和编辑 添加按钮 我创建了一个UITableViewController拥有自己的子类 xib 但是 当我添加一个UITableView to my xib的主视图内容属性 我想将
  • 如何为单个 If 语句执行多个条件

    我试图在 vbscript 中的单个 If 语句上执行两个条件 应该很简单 但它不起作用 就像是 If Not fileName testFileName fileName lt gt Then Else 我用两个 if 语句来让它工作 但
  • 使CPU的缓存失效

    当我的程序执行具有获取语义的加载操作 具有释放语义的存储操作或可能是完整栅栏时 它会使 CPU 的缓存无效 我的问题是 缓存的哪一部分实际上失效了 只有保存我使用的获取 释放变量的缓存行 或者整个缓存都失效了 L1 L2 L3 等等 当我使
  • 将 Office365 REST 日历 ID 映射到 EWS 日历项目 ID

    使用交换推送通知 https msdn microsoft com en us library aa566188 v exchg 80 aspx我一直在创建一项同步 Office365 用户的日历数据的服务 我一直在使用以下组合Office
Powered by Hwhale