如何解决类中分配端点上的错误请求?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决类中分配端点上的错误请求?相关的知识,希望对你有一定的参考价值。
[当我调用图形/assigments
端点时,收到带有以下消息的错误请求:
找不到段'assignments'的资源。
此相同的代码模式可用于其他端点,例如/teachers
和/members
,但不适用于/assignments
。
代码:
$getEventsUrlAssignments = '/education/classes/' . $class->getId() . '/assignments';
try
$assignments = $graph->createRequest('GET', $getEventsUrlAssignments)
->setReturnType(Model\EducationAssignment::class)
->execute();
catch (\GuzzleHttp\Exception\ClientException $e)
dd($e->getResponse()->getBody()->getContents());
我已按照文档中所述添加了正确的权限:
EduAssignments.ReadBasic
EduAssignments.ReadWriteBasic
EduAssignments.Read
EduAssignments.ReadWrite
我可能做错了什么?
您收到此错误的原因是/assignments
仅在Graph的Beta版中可用。如果尝试使用v1.0调用此端点,则Graph会拒绝请求,并出现以下错误:
"error":
"code": "BadRequest",
"message": "Resource not found for the segment 'assignments'.",
"innerError":
"request-id": "38df490c-3a2b-4fe8-a77e-a7cce82831b5",
"date": "2020-02-20T18:46:16"
为了使用/assignments
端点,您需要调用Beta版本:
/beta/education/assignments/
您可以通过setApiVersion
告诉SDK使用Beta版:
setApiVersion
您还需要引用Beta模型,因为v1.0中没有用于Assignment的模型。此过程在SDK的Wiki的$graph = new Graph();
$graph
->setBaseUrl("https://graph.microsoft.com/")
->setApiVersion("beta")
->setAccessToken($_SESSION['access_token']);
$getEventsUrlAssignments = '/education/classes/' . $class->getId() . '/assignments';
try
$assignments = $graph->createRequest('GET', $getEventsUrlAssignments)
->setReturnType(Model\EducationAssignment::class)
->execute();
catch (\GuzzleHttp\Exception\ClientException $e)
dd($e->getResponse()->getBody()->getContents());
下进行了说明。
以上是关于如何解决类中分配端点上的错误请求?的主要内容,如果未能解决你的问题,请参考以下文章