【问题标题】:Adding Calendar Event using Microsoft Graph API使用 Microsoft Graph API 添加日历事件
【发布时间】:2020-09-23 18:53:50
【问题描述】:

我正在尝试通过 Powershell 脚本在日历中创建一个事件。它需要将日历事件添加到组织者的日历中,然后添加到与会者列表中。以下是我在请求正文中发送的内容。

{
  "subject": "Let's go for lunch",
  "IsOrganizer": "true",
  "body": {
    "contentType": "HTML",
    "content": "Does noon work for you?"
  },
  "start": {
      "dateTime": "2020-08-31T12:00:00",
      "timeZone": "Pacific Standard Time"
  },
  "end": {
      "dateTime": "2020-08-31T14:00:00",
      "timeZone": "Pacific Standard Time"
  },
  "location":{
      "displayName":"Harry's Bar"
  },
  "attendees": [
    {
      "emailAddress": {
        "address":"attendee1@attendeeadress.com",
        "name": "Attendee1"
      },
      "type": "required",
       "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
        }
    },
      {
      "emailAddress": {
        "address":"attendee2@attendeeadress.com",
        "name": "Attendee2"
      },
      "type": "required",
       "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
        }
    }
  ],
   "organizer":{
        "emailAddress":{
            "name":"Specific Calendar",
            "address":"calendarname@organizerorganization.onmicrosoft.com"
        }
    },
  "allowNewTimeProposals": true
}

它成功显示在与会者的日历上,但未显示在主要组织者的日历上。谁能告诉我我做错了什么以及如何让这个出现在主要组织者的日历上?

谢谢!

更新 - 这就是我获取用户令牌的方式。

$Body = @{
    'client_id' = 'my_client_id'
    'scope' = 'https://graph.microsoft.com/.default'
    'client_secret' = 'my_client_secret'
    'grant_type' = 'password'
    'userName' = 'calendarname@organizerorganization.onmicrosoft.com'
    'password' = 'password'
}

现在我的理解是这个用户应该被默认设置为活动的组织者。

【问题讨论】:

  • 看起来您正在尝试创建一个活动并将组织者作为不同的人。组织者不能由呼叫者定义。请通过这个document
  • 我不是。我的用户是 calendarname@organizerorganization.onmicrosoft.com 所以据我了解,默认情况下应该是组织者?我尝试将该电子邮件添加为与会者,以查看它是否会出现在日历上,但没有。它出现在我提供的其他与会者的日历上。这让我认为这可能是权限问题,而不是我的请求正文中的某些内容...
  • 是的,因此,如果您使用 calendarname@organization.onmicrosoft.com 的委派令牌创建活动,则创建该活动的人将是组织者。这里应该是您的 calendarname@organization.onmicrosoft.com。请浏览我分享的上述线程,会给你清晰的图片。
  • 我以为我是。我是 Graph API 的新手,所以请原谅我的无知......我已经更新了我原来的问题,以展示我是如何获取用户令牌的。
  • 我已经使用邮递员对它进行了测试,使用 ROPC 流和调用 POST https://graph.microsoft.com/v1.0/me/calendar/events 的方式相同。请尝试一下,看看是否有帮助。

标签: microsoft-graph-api


【解决方案1】:

您可以使用 ROPC 流程创建一个事件,该流程为您提供用户访问令牌,并使用它您可以使用您的有效负载调用 /events 端点,如下所示。

POST https://graph.microsoft.com/v1.0/me/calendar/events

如果您使用此令牌创建活动并将用户名指定为 calendarname@organization.onmicrosoft.com,这将是活动的组织者。

您可以更新“主题”、“正文/内容”,但不能更新已经完成的事件的“开始”和“结束”属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多