对日历进行Graph API调用时禁用对OData的访问&&q;错误

本教程将介绍对日历进行Graph API调用时禁用对OData的访问&&q;错误的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

对日历进行Graph API调用时禁用对OData的访问&&q;错误 教程 第1张

问题描述

我有一个从ServiceNow到Office 365的演示集成,上次我检查时一切正常(那是几天前)。我通过两种方式设置它(使用两个身份验证流):

    授权码-这仍然工作正常。

    客户端凭据-现在,当我尝试访问任何日历时,这会给我一个错误。应用程序已注册,权限在那里:

尝试运行getSchedule API时,收到以下响应:

"error": {
 "code": "ErrorAccessDenied",
 "message": "Access to OData is disabled.",
 "innerError": {
"request-id": "e14a6800-ed63-4692-9934-cc0ec009d93b",
"date": "2020-03-16T14:43:34"
 }
}

我找遍了我能查到的每一个地方。生成访问令牌。这肯定与日历的Graph API有关。

推荐答案

问题与应用程序访问策略有关。

基本上,如果您在Microsoft 365的OAuth中使用应用程序权限,则可以使用以下说明进一步缩小权限范围:
https://docs.microsoft.com/en-us/graph/auth-limit-mailbox-access

Microsoft Graph应用程序权限(您可能不需要
他们):

    邮件.Read

    Mail.ReadBasic

    Mail.ReadBasic.All

    Mail.ReadWrite

    邮件发送

    MailboxSettings.Read

    MailboxSettings.ReadWrite

    日历。阅读

    日历.ReadWrite

    合同。阅读

    Contacts.ReadWrite

有关配置应用程序访问策略的详细信息,请参阅New-ApplicationAccessPolicy的PowerShell cmdlet参考。

处理API错误


API调用被拒绝时可能会遇到以下错误
由于配置的应用程序访问策略而进行访问。

{
"error": {
 "code": "ErrorAccessDenied",
 "message": "Access to OData is disabled.",
 "innerError": {
  "request-id": "<request GUID is here>",
  "date": "<UTC date format here>"
 }
}

如果应用程序中的Microsoft Graph API调用返回此错误,请执行以下操作
与组织的Exchange Online管理员联系以确保
您的应用程序有权访问邮箱资源。

在我们的案例中,其中一个策略似乎没有正确删除/更新。删除与此集成相关的所有策略后,它再次开始工作。

好了关于对日历进行Graph API调用时禁用对OData的访问&&q;错误的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。