使用Microsoft Graph进行OnlineMeeting对象错误403

时间:2019-04-25 18:48:08

标签: php microsoft-graph

我正在使用Microsoft Graph API在PHP中进行应用。实际上,我找不到任何有关php的文档,所以我按照Microsoft教程进行了操作。

所以首先我尝试为post方法做microsoft页面示例:

POST https://graph.microsoft.com/beta/app/onlineMeetings 内容类型:application / json 内容长度:1553

{
  "meetingType": "meetNow",
  "participants": {
    "organizer": {
      "identity": {
        "user": {
          "id": <id user azuread teenant>
      }
    }
  }
},
 "subject": "subject-value"

}

实际上,它在Microsoft图形资源管理器上不起作用。我已经授予了所有权限,并且ir返回以下内容:

失败-状态码403,440ms好像您没有此呼叫的权限。

{
"error": {
    "code": "Forbidden",
    "message": "",
    "innerError": {
        "request-id": "fd8cdedd-99f1-4bca-9de6-29a77f834bba",
        "date": "2019-04-25T18:06:43"
        }
    }
}

尽管资源管理器无法处理在线会议和电话,所以我停止使用它,并尝试使用php应用程序。

然后我尝试了这个:

// Create a Graph client
// Set  graph version
// Get user info
$graph = new Graph();
$graph->setAccessToken($accessToken);   
$graph->setApiVersion("beta");

$createTeamsUrl = '/app/onlineMeetings';

$events = $graph->createRequest('POST', $createTeamsUrl)
->attachBody($body)
->execute();

accessToken是oauth v2.0返回的令牌,它可以正常工作。

我已经向我的azure广告应用程序授予了测试目的的所有权限(包括委托和应用程序,例如OnlineMeetings.ReadWrite.All),但这会返回相同的错误。

我有其他要求,例如:

//works
$graph = new Graph();
$graph->setAccessToken($accessToken->getToken());

$user = $graph->createRequest('GET', '/me')
->setReturnType(Model\User::class)
->execute();

这可行。

我还下载了c#示例,它可以正常工作,所以我认为它没有权限

https://github.com/microsoftgraph/microsoft-graph-comms-samples/

如果有人知道是否支持此功能,可能会有用。

谢谢。

2 个答案:

答案 0 :(得分:0)

在创建在线会议时遇到相同的403禁止错误
还在范围内添加了“ OnlineMeetings.ReadWrite.All”权限

enter image description here

enter image description here

答案 1 :(得分:0)

如果您使用common作为承租人来获取访问令牌,则首先要做的是使用承租人ID代替普通单词,如here所述。这对我有用。