Microsoft graph api 状态代码:尝试创建邮件事件订阅时禁用

Microsoft graph api 状态代码:尝试创建邮件事件订阅时禁用,microsoft-graph-api,Microsoft Graph Api,我试图使用Microsoft Graph的/subscriptions端点,但得到以下响应: stdClass对象 ( [错误]=>stdClass对象 ( [代码]=>ExtensionError [消息]=>操作:创建;异常:[状态代码:禁止;原因:禁止] [innerError]=>stdClass对象 ( [请求id]=>15acd5eb-46db-408e-8c6b-3bb779d63940 [日期]=>2017-09-29T17:44:45 ) ) ) 在Microsoft应

我试图使用Microsoft Graph的
/subscriptions
端点,但得到以下响应:

stdClass对象
(
[错误]=>stdClass对象
(
[代码]=>ExtensionError
[消息]=>操作:创建;异常:[状态代码:禁止;原因:禁止]
[innerError]=>stdClass对象
(
[请求id]=>15acd5eb-46db-408e-8c6b-3bb779d63940
[日期]=>2017-09-29T17:44:45
)   
)
)
在Microsoft应用程序注册门户中,我拥有应用程序权限
Mail.Read
User.Read.All

我跟在后面

在调用
/subscriptions
之前,我正在成功地检索访问令牌,并使用它从
/users
端点检索用户信息

我使用PHP curl发出以下请求:

$url=”https://graph.microsoft.com/v1.0/subscriptions/";
$headers=array();
$headers[]=“授权:承载者”。$token;
$headers[]=“内容类型:application/json”;
$postData=数组(
“changeType”=>“已创建、已更新”,
“通知URL”=>”https://example.com/subscriptionListener.php",
“资源”=>“用户/GUID-of-a-user/mailFolders('Inbox')/邮件”,
“expirationDateTime”=>“2017-10-01T18:23:45.9356913Z”,
“客户端状态”=>“12345”
);
$postJSON=json_encode($postData);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_POST,count($postData));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postJSON);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result=curl\u exec($ch);
回声“
订阅端点需要
邮件。请阅读
,根据Microsoft应用程序门户,我的应用程序具有:

因此,我的应用程序权限似乎没有反映在我的令牌中


非常感谢任何帮助!!

最终解决了这个问题…我没有为新的
邮件提供“管理员同意”。请阅读
权限

我在标题为“管理员同意”的部分找到了答案。您只需按指示键入url,然后在登录后单击“接受”。请注意,
redirect\u uri
参数不一定要起作用-如果不起作用,那么当您单击“接受”时,您将收到一条错误消息,但管理员同意仍然会被授予

  "roles": [
    "User.Read.All"
  ],