标签: microsoft-graph-calendar

Microsoft Graph日历API-TargetIdShouldNotBeMeOrWhitespace错误

我们使用Microsoft Graph API在Outlook中创建日历

以下是HTTP请求

POST https://graph.microsoft.com/v1.0/users/me/calendars
Content-type: application/json

{
  "name": "My Calendar"
}

Run Code Online (Sandbox Code Playgroud)

最近两年来一直在工作。突然它抛出一个错误

{
  "error": {
    "code": "TargetIdShouldNotBeMeOrWhitespace",
    "message": "Id is malformed.",
    "innerError": {
      "request-id": "78bce863-d6fb-4ea9-b0f8-e5097010cef6",
      "date": "2019-03-23T11:54:34"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

当我们搜索文档时(https://docs.microsoft.com/zh-cn/graph/api/user-post-calendars?view=graph-rest-1.0)。我们发现API网址已更改

  1. 何时推出像这样的重要更新而导致流程中断?

  2. 是否有任何官方频道/群组通知这些更改。

邮件API的Microsoft Graph API的类似问题-SendMail http 400-文档中的API网址不起作用

microsoft-graph microsoft-graph-calendar

8
推荐指数
1
解决办法
234
查看次数

使用 MS Graph API 订阅/导入 iCal URL

如何使用Microsoft Graph API将 Office365 用户导入/订阅在 iCal 格式的 URL 上托管的日历?例如,假设我有一个托管在https://example.org/events.ical上的日历,并且我希望此日历显示在 Office365 上托管的用户 Outlook 中?

如果我手动执行此操作,我会遵循这些说明。但我找不到执行此操作的图形 API。

执行 AzureAD 身份验证/权限/令牌不是问题,我可以正常工作。只是Office365上的Outlook调用哪个API。

microsoft-graph-calendar microsoft-graph-api

7
推荐指数
1
解决办法
1107
查看次数

如何使用 Microsoft Graph Api 访问组日历?

我正在尝试使用 microsoft graph api 作为应用程序访问组日历(我不想使用委托权限)。

如果我使用下面的方法请求日历事件,我就能很好地为用户获取事件。

https://graph.microsoft.com/v1.0/users/[emailAddress]/events
Run Code Online (Sandbox Code Playgroud)

如果我向以下人员提出请求,我会获得组信息:

https://graph.microsoft.com/v1.0/groups/[groupId]/
Run Code Online (Sandbox Code Playgroud)

如果我对此提出请求:

https://graph.microsoft.com/v1.0/groups/[groupId]/events
Run Code Online (Sandbox Code Playgroud)

我收到“访问被拒绝。检查凭据并重试。” 在azure门户中,我已向我的应用程序服务授予以下应用程序权限:

Calendars.Read
Calendars.Read.Shared
Group.Read.All
User.Read.All
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

microsoft-graph-calendar microsoft-graph-api

6
推荐指数
1
解决办法
3026
查看次数

图“ ErrorApiQuarantined”

/v1.0/me/calendarview?startdatetime=2019-10-07T12:17:48.964Z&enddatetime=2019-10-14T12:17:48.964Z在Microsoft Graph中调用时,出现以下错误:

{
  "error": {
    "code": "ErrorApiQuarantined",
    "message": "Request has been quarantined by condition.",
    "innerError": {
      "request-id": "ca5247f8-b461-4270-89e5-186ed6a3b8fe",
      "date": "2019-10-07T12:17:49"
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

致电时,我也会收到相同的错误/v1.0/me/messages。看来所有Outlook API都不再起作用。

microsoft-graph microsoft-graph-calendar

6
推荐指数
1
解决办法
632
查看次数

同步新日历事件始终具有 @removed 字段

我正在使用@microsoft/microsoft-graph-clientnpm 包与基本 url同步日历事件/me/calendarview/delta。直到几天前它一直运行良好。出于某种原因,每当我在 Outlook.office.com 中创建新日历事件并且我的应用程序同步时,新创建的日历事件都会@removed: {reason: "deleted"}设置该字段。

但是,当我使用 Microsoft Graph Explorer 查找同一个日历事件时,同一个事件没有@removed设置该字段。是否有任何理由让新创建的日历事件看起来像是在同步期间被删除?我正在使用@microsoft/microsoft-graph-client v1.3.0

重建步骤:

  1. 通过 POST 使用节点图客户端创建事件 /me/calendar/events
  2. 使用/me/calendarview/delta适当的 deltaLink 和访问令牌获取日历事件的增量。
  3. 我收到 1 个日历事件,其中包含 3 个字段@odata.typeid@removed。id 字段与步骤 1 中创建的事件的 id 匹配。

如果您需要更多信息,请告诉我。这影响了我们的一些用户。

更新:我尝试通过调用我在增量同步中收到的/me/events/<id>每个@removed日历条目来验证该事件是否真的被删除来解决此问题。但是,当我通过 microsoft-graph-client 调用该 API 时,它返回 null。如果我通过MSFT Graph Explorer进行相同的 GET 调用,则返回该事件。

microsoft-graph-sdks microsoft-graph-calendar microsoft-graph-api

5
推荐指数
1
解决办法
320
查看次数

Microsoft Graph API:如何跟踪已删除的日历事件发生?

我目前正在从事 Exchange Online 集成项目,我们使用 Microsoft Graph API 1.0 将用户的日历复制到我们的系统。到目前为止它一直工作正常,但今天我遇到了一个我无法解决的问题:

您如何跟踪重复发生的日历事件的删除情况?

我曾尝试使用“Delta”链接但没有成功。这些请求仅返回系列母版以及所有剩余的事件。

例如第一个请求:

GET /v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?startdatetime=2019-04-11T00:00:00&enddatetime=2019-04-28T23:59:59

然后我请求 nextLink 以便我获得 deltaLink,然后我请求 deltaLink:

GET /v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?$deltatoken=uwMsonT1N46Me49CO...(etc.)
Run Code Online (Sandbox Code Playgroud)

然后我得到了回应:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(event)",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?$deltatoken=uwMsonT1N46Me49COq9SDw0t_wB0xaeZEqH3MS63rea577XfZFFdjg0jwU6FzfSp9LnqeqbpBGm2ppJDuDiIP280MEFjk2Q9GYyNNdCAP__CjSKSGFQ9WKmL3TPyFeXhhYE9KgmWHF1cSrx7OYBT7zPrgwY0x5peeyjBEtqkAueuE2Pb8DH4iODU-vAp-lHVOzPmkkjNyef1NTNkgNv-kg.oOHzptXCwEphbnI7YFO7saexZ_c0hZj1a0o4ZjluzUU",
    "value": []
}
Run Code Online (Sandbox Code Playgroud)

只要日历中没有任何变化,对 deltaLink 的后续调用将继续返回:"value": []。

然后我删除一个系列中的一个事件,然后再次请求 deltaLink,然后 MS Graph API 只返回 master 以及原始时间跨度内的所有剩余事件,没有任何删除事件的痕迹!

有谁遇到过同样的问题吗?

office365 microsoft-graph-calendar microsoft-graph-api

5
推荐指数
1
解决办法
492
查看次数

使用 Microsoft Graph API 创建 Outlook 日历活动时未添加与会者

我正在使用 Microsoft 的 Graph API 和 Node.js 应用程序创建 Outlook 日历事件。以下文档/示例链接:https://learn.microsoft.com/en-us/previous-versions/office/office-365-api/api/version-2.0/calendar-rest-operations#CreateEvents

我的代码:

var options = {
    method: 'POST',
    url: 'https://graph.microsoft.com/v1.0/me/calendar/events',
    headers: {
        'Authorization': 'Bearer ' + access_token,
        'Content-Type': 'application/json'
    },
    body: {
        "subject": "Node.js outlook test",
        "body": {
            "contentType": "HTML",
            "content": "Test event created from node.js"
        },
        "start": {
            "dateTime": "2019-03-25T12:00:00",
            "timeZone": "Pacific Standard Time"
        },
        "end": {
            "dateTime": "2019-03-25T14:00:00",
            "timeZone": "Pacific Standard Time"
        },
        "isAllDay": false,
        "location": {
            "displayName": null
        },
        "attendees": [{
            "emailAddress": {
                "address": "my-other-email@gmail.com",
                "name": "Adele …
Run Code Online (Sandbox Code Playgroud)

node.js microsoft-graph-calendar microsoft-graph-api

5
推荐指数
1
解决办法
696
查看次数

尝试将文件附加到 Outlook 日历事件时出现状态代码 422

我正在尝试使用graph-js-sdk-web.js我相信我完全按照说明将文本文件附加到 Outlook 中的现有事件,但我得到了422响应。我如何让它附加文件?

我很确定我eventID是正确的,因为我可以创建一个事件并通过该 ID 获取它。我很确定我的文件的后加载是正确的,因为我自己附加了文件,然后通过扩展附件的 id 获取了该事件,并且它是相同的 OData 类型、名称和内容。

到目前为止,我在 google 上搜索了响应,我所看到的一切要么只对人们有效,要么与该示例相比,他们对代码不感兴趣。

这是我请求的权限

openid profile User.Read MailboxSettings.Read Calendars.ReadWrite
Run Code Online (Sandbox Code Playgroud)

这匹配授予注册应用程序的权限。

这是客户端和文件附件代码:

// Create a Graph client
var client = MicrosoftGraph.Client.init({
    authProvider: (done) => {
        // Just return the token
        done(null, sessionStorage.accessToken);
    }
});

client
    .api('/me/calendar/events/' + eventID + '/attachments')
    .post({
        attachment: {
            "@odata.type": "#microsoft.graph.fileAttachment",
            name: "helloworld.txt",
            contentBytes: "SGVsbG8gd29ybGQh"
        }
    }, (error, response) => {
        if (error)
            console.log(error);
        else {
            console.log(response); …
Run Code Online (Sandbox Code Playgroud)

javascript microsoft-graph-calendar microsoft-graph-api

5
推荐指数
1
解决办法
343
查看次数

如何按内容过滤 Outlook 事件

我想通过 Graph API 获取 Outlook 事件列表,并通过在事件正文中搜索某些文本来过滤它们。

我可以像这样按主题过滤:

https://graph.microsoft.com/v1.0/me/calendar/events?$filter=contains(subject,'test')
Run Code Online (Sandbox Code Playgroud)

但如果我用身体尝试这个,它就不起作用了。返回的错误消息要么是“无效的过滤子句”,要么表示发生了内部服务器错误。我知道事件的 body 属性不是字符串类型,但应该可以以某种方式搜索其 content 属性

我已经尝试过以下操作:

https://graph.microsoft.com/v1.0/me/calendar/events?$filter=contains(body,'test')
Run Code Online (Sandbox Code Playgroud)

这将返回“无效的过滤子句”

https://graph.microsoft.com/v1.0/me/calendar/events?$filter=contains(body/content,'test')
Run Code Online (Sandbox Code Playgroud)

返回“发生内部服务器错误”

microsoft-graph-calendar

5
推荐指数
1
解决办法
359
查看次数

尝试删除日历事件时出现 ErrorIrresolvableConflict 响应

删除事件端点偶尔用一用响应412/ErrorIrresolvableConflict尝试删除事件时的状态代码。响应中提供的消息是:

无法执行发送或更新操作,因为请求中传递的更改键与项目的当前更改键不匹配。

ErrorIrresolvableConflict错误描述表明应该:

检索更新的更改密钥并重试。

看一眼事件资源描述,我将其changeKey视为事件的属性,但删除事件端点文档中没有任何内容表明在删除事件时需要提供 changeKey 或如何执行此操作。

我在 SO 上看到了几个类似的问题,这些问题与发送电子邮件添加附件有关,但四处搜索对删除日历事件没有任何帮助。

这个错误是暂时发生的,我还没有找到一种方法来始终如一地重现它。似乎与事件是否有附件无关。

在以下请求中观察到此错误:

请求 ID:05cffaf7-c422-4bfd-97ac-6ea6d1036021

microsoft-graph-calendar microsoft-graph-api

5
推荐指数
1
解决办法
235
查看次数