当前位置: 首页 > 知识库问答 >
问题:

按ID获取站点时出现Microsoft Graph API服务不可用错误

舒嘉德
2023-03-14

当我试图获取一个由Post使用图形API成功创建的Sharepoint网站时,我收到一个HTTP 503状态MSFT图形API错误。

我正在使用开发人员 O365 订阅。

正在使用使用MSFT MSAL库来管理身份验证令牌的Python应用程序。我能够使用python应用程序成功调用图形API的其他部分。当使用登录到我的帐户并具有站点权限的图形资源管理器时,我得到了正确的成功响应。Python应用程序在大约10-40个请求后工作了一两个小时,但现在在serviceNot中错误地冻结了。

python客户端的AD应用程序权限为:

  • 目录。读写。全部
  • 组。创建
  • 组。读写。全部
  • 地点。完全控制。所有
  • 站点。管理。所有
  • 网站。阅读。所有
  • 网站。读写。所有
  • 用户。阅读

我调用 GET 的endpoint是:https://graph.microsoft.com/v1.0/sites/mydomain,some-uuid

我得到的响应标头是:

{
'Cache-Control': 'private', 
'Content-Type': 'application/json', 
'request-id': 'ff8256de-f833-4916-85c2-2ee229a68135', 
'client-request-id': 'ff8256de-f833-4916-85c2-2ee229a68135', 
'x-ms-ags-diagnostic': '{
"ServerInfo":{
"DataCenter":"North Central US",
"Slice":"SliceC",
"Ring":"3",
"ScaleUnit":"002",
"RoleInstance":"AGSFE_IN_3"}}', 
'Strict-Transport-Security': 'max-age=31536000', 
'Date': 'Wed, 04 Mar 2020 17:47:03 GMT', 
'Content-Length': '306'
}

响应主体为:

{
  "error": {
    "code": "serviceNotAvailable",
    "message": "The service is not available. Try the request again after a delay. There may be a Retry-After header.",
    "innerError": {
      "request-id": "ff8256de-f833-4916-85c2-2ee229a68135",
      "date": "2020-03-04T17:47:03"
    }
  }
}

我在MSFT文档中读到,这是一个违反使用条款的节流错误,图形浏览器不受节流限制。我从来没有得到“重试后”标题。

有人知道如何使我的API调用成功吗?如何通过MSFT重置节流?我可能会在一小时内调用100-150个Graph API。

共有2个答案

夏华藏
2023-03-14

我在访问站点API中的任何资源时遇到的问题是由于Groups.创建和Groups.读写。同时授予应用程序类型访问的所有权限造成的。

删除 Groups.Create 允许所有 CRUD 调用成功,而不会出现 serviceNotAvailable 错误,即使是仅访问站点的命令行调用也是如此。

如果您更改了测试的权限,请确保更新管理授权和您的令牌。

用户@user13034886在另一篇帖子中提到了权限冲突。

汤飞羽
2023-03-14

我们在多个Office365租户中遇到了这个问题。我们联系了微软,他们表示这是他们正在修复的服务器端错误。他们现在正在为我们的一个客户部署修复程序。这不是节流,因为第一次API调用发生错误。不幸的是,除了给微软开罚单,你什么都做不了。顺便说一句,这通电话一年多来一直很好。该错误于2020年2月底开始发生。

 类似资料:
  • 我在我的一个项目中使用了neo4j,有一个节点只有一个属性,我想使用ID获得这个节点,它已经有一个ID了,但是当我使用这个代码时 它什么也不返回,这是我的节点 如果查询错误,那么如何使用数字查询

  • 问题内容: 每当我尝试启动日食时,都会遇到以下异常,但这种异常不会出现。 需要帮忙。谢谢。 问题答案: 该文件应包含在逗号分隔的属性中。这是默认属性,可能是在某些升级过程中(偶然)更改了: 您可以根据需要通过将其设置为VM参数来覆盖它

  • 我有一个基于GWT RestyGWT和Spring的应用程序 我正在尝试在客户端站点上进行一些用户友好的异常处理。 我在服务器端有一些抛出异常的方法: 它在客户端称为异步,并在那里处理: 如何获取原始错误消息和类(“金额为负”和CustomException)?我能从方法和可丢弃的变量中得到的只有: 错误代码=500 响应消息=“内部服务器错误” 可丢弃的是组织。fusesource。restyg

  • 问题内容: 今天我的一个网站开始展示 这是一个低流量的客户端站点,在Apache 2.2.9(Debian),PHP 5.2.6-1 + lenny3(使用CodeIgniter 1.7.1框架)和MySQL 5.0.51a下运行。我显然是对该错误进行了重新研究,但所有可能的解决方案都表明正在进行的大查询可能会超时并重置连接,或达到数据包限制。但是,事实并非如此,这是一个使用最简单查询处理的小型数

  • 我已经在虚拟环境中安装了审查板,并在ubuntu 13.10上使用apache2和mod_wsgi创建了站点审查板 我被要求更新网站 审查板运行的版本与站点上次升级到的版本不匹配。您正在运行1.7.20,站点上次升级为1.7.21。 请升级您的网站以通过运行解决此问题: 升级后 得到了 我收到以下消息: 正在更新数据库。这可能需要一段时间。 除非升级失败,否则可以忽略以下日志输出,包括警告和错误。

  • 我得到了错误: 06-24 10:41:36.497 173 16-17316/com.example.waseem.geolocation:location_service e/androidruntime:致命异常:main process:com.example.waseem.geolocation:location_service,pid:17316 java.lang.runtimeEx