Microsoft graph api 使用Graph API进行日历访问

Microsoft graph api 使用Graph API进行日历访问,microsoft-graph-api,office365,exchange-server,office365api,Microsoft Graph Api,Office365,Exchange Server,Office365api,我们为用户提供了一个从门户预订/编辑/取消会议室邮箱会议的应用程序 因此,用户应该能够在会议室邮箱中创建日历事件,所有参与者都应该收到会议邀请 除了“Calendars.ReadWrite”之外,您能告诉我Graph API需要什么权限吗?根据关于创建在线会议的说明,我尝试调用API,它可以使用Calendars.ReadWrite权限,以下是详细信息 创建Azure广告应用程序并添加api权限 获取访问令牌,请注意我刚刚将ReadWrite设置为作用域。 根据上面的文档调用api并将获得成

我们为用户提供了一个从门户预订/编辑/取消会议室邮箱会议的应用程序

因此,用户应该能够在会议室邮箱中创建日历事件,所有参与者都应该收到会议邀请

除了“Calendars.ReadWrite”之外,您能告诉我Graph API需要什么权限吗?

根据关于创建在线会议的说明,我尝试调用API,它可以使用Calendars.ReadWrite权限,以下是详细信息

  • 创建Azure广告应用程序并添加api权限
  • 获取
    访问令牌
    ,请注意我刚刚将ReadWrite设置为作用域。
  • 根据上面的文档调用api并将获得成功响应,您可以打开outlook并发现会议已在日历中创建。
  • 这是我的url和参数:

    Post:https://graph.microsoft.com/v1.0/me/events
    Authorization:Bearer <access token>
    Prefer:outlook.timezone="Pacific Standard Time"
    Content-Type:application/json
    body:{
      "subject": "Prep for customer meeting",
      "body": {
        "contentType": "HTML",
        "content": "Does this time work for you?"
      },
      "start": {
        "dateTime": "2020-11-20T13:00:00",
        "timeZone": "Pacific Standard Time"
      },
      "end": {
        "dateTime": "2020-11-20T14:00:00",
        "timeZone": "Pacific Standard Time"
      },
      "location":{
        "displayName":"Cordova conference room"
      },
      "attendees": [
        {
          "emailAddress": {
            "address":"AdeleV@contoso.OnMicrosoft.com",
            "name": "Adele Vance"
          },
          "type": "required"
        }
      ],
      "allowNewTimeProposals": true,
      "isOnlineMeeting": true,
      "onlineMeetingProvider": "teamsForBusiness"
    }
    
    Post:https://graph.microsoft.com/v1.0/me/events
    授权:持票人
    首选:outlook.timezone=“太平洋标准时间”
    内容类型:application/json
    正文:{
    “主题”:“客户会议准备”,
    “正文”:{
    “内容类型”:“HTML”,
    “内容”:“这一次对你有用吗?”
    },
    “开始”:{
    “日期时间”:“2020-11-20T13:00:00”,
    “时区”:“太平洋标准时间”
    },
    “结束”:{
    “日期时间”:“2020-11-20T14:00:00”,
    “时区”:“太平洋标准时间”
    },
    “地点”:{
    “displayName”:“科尔多瓦会议室”
    },
    “与会者”:[
    {
    “电子邮件地址”:{
    “地址”:AdeleV@contoso.OnMicrosoft.com",
    “姓名”:“阿黛尔·万斯”
    },
    “类型”:“必需”
    }
    ],
    “AllowneWTimePropositions”:正确,
    “isOnlineMeeting”:没错,
    “在线会议提供商”:“团队合作”
    }
    
    根据,除Calendar.ReadWrite之外,没有其他权限创建活动。谢谢TInywa,您是否检查了所有与会者是否都收到了会议邀请?是的,我尝试向参数中添加了一些其他邮箱地址,除没有日历功能的与会者外,所有与会者都收到了邀请。似乎您正在从日历中发送会议邀请。在我的情况下,我没有通过用户credentail。我能在任何人的日历中创建活动吗?恐怕不行。我尝试使用api,但当我将url更改为“{id | userPrincipalName}/events”时,无法在其他人的日历中创建事件。另一方面,如果使用上面的“我的方式”,与会者的日历中也会有通知。也许你对与会者不能绕过大厅感到困惑,我正在研究这个案例,我建议在metion电子邮件中设置会议配置,或者修改Microsoft Team admin center,让每个人都可以绕过大厅。