Microsoft Graph findMeetingTimes端点不起作用 [英] Microsoft Graph findMeetingTimes endpoint not working

查看:150
本文介绍了Microsoft Graph findMeetingTimes端点不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请不要重复报告,因为所有其他主题都无法解决我的问题,谢谢.

Please do not report as duplicate because all other topics have not solved my issue, thanks.

我正在使用Microsoft Graph api列出和创建日历事件,但是我似乎无法使findMeetingTimes端点正常工作.

I'm using Microsoft Graph api to list and create calendar events, however I can't seem to make the findMeetingTimes endpoint work.

这是我的授权URL:

https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?client_id=xxxxx&response_type=code&redirect_uri=xxxxx&response_mode=form_post&scope=openid%20profile%20User.ReadWrite%20User.ReadBasic.All%20Sites.ReadWrite.All%20Contacts.ReadWrite%20People.Read%20Notes.ReadWrite.All%20Tasks.ReadWrite%20Mail.ReadWrite%20Files.ReadWrite.All%20Calendars.ReadWrite&state=12345

然后,我使用相同的范围请求访问令牌:

Then I request an access token using the same scopes:

$request = json_decode($guzzle->post('https://login.microsoftonline.com/common/oauth2/v2.0/token', [
            'headers' => [
                'Content-Type' => 'application/x-www-form-urlencoded'
            ],
            'form_params' => [
                'client_id' => 'xxxxx',
                'scope' => 'openid profile User.ReadWrite User.ReadBasic.All Sites.ReadWrite.All Contacts.ReadWrite People.Read Notes.ReadWrite.All Tasks.ReadWrite Mail.ReadWrite Files.ReadWrite.All Calendars.ReadWrite',
                'code' => $auth_code,
                'grant_type' => 'authorization_code',
                'redirect_uri' => 'xxxxx',
                'client_secret' => 'xxxxx'
            ],
        ])->getBody()->getContents());

之后,我尝试使用以下方法查找findMeetingTimes端点:

After that I'm trying the findMeetingTimes endpoint using:

$request = json_decode($guzzle->post('https://graph.microsoft.com/v1.0/me/findMeetingTimes', [
            'headers' => [
                'Authorization' => 'Bearer ' . $accessToken,
                'Content-Type' => 'application/json',
            ],
            'body' => '{
              "attendees": [
                {
                  "type": "required",
                  "emailAddress": {
                    "name": "My Name",
                    "address": "myemail@hotmail.com"
                  }
                }
              ],
              "timeConstraint": {
                "activityDomain":"work",
                "timeslots": [
                  {
                    "start": {
                      "dateTime": "2019-04-02T09:00:00",
                      "timeZone": "Pacific Standard Time"
                    },
                    "end": {
                      "dateTime": "2019-04-03T17:00:00",
                      "timeZone": "Pacific Standard Time"
                    }
                  }
                ]
              }
            }',
        ])->getBody()->getContents());

但是,它不断返回:

401 - Unauthorized: Access is denied due to invalid credentials.

You do not have permission to view this directory or page using the credentials that you supplied.

谁将成为我的英雄? :/

Who's going to be my hero? :/

推荐答案

这是设计使然.从文档:

注意 findMeetingTimes操作当前可用于Office 365工作或学校邮箱,但不适用于个人Outlook.com邮箱.

Note The findMeetingTimes action is currently available to Office 365 work or school mailboxes, but not personal, outlook.com mailboxes.

这篇关于Microsoft Graph findMeetingTimes端点不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆