在 Microsoft Teams for Education 上创建 educationSubmissionResource 的错误请求

问题描述 投票:0回答:1

我们开发了与 Microsoft Teams for Education 的集成,除了学生提交任务时的 Create educationSubmissionResource 调用之外,所有 API 调用都可以正常工作。

我们创建了一个作业,并将

allowStudentsToAddResourcesToSubmission
标志设置为 true,当学生提交作业时,我们执行以下代码:

$graph = new Microsoft\Graph\Graph();
$graph->setAccessToken($student->accessToken);

$submissionResource = new Microsoft\Graph\Model\EducationSubmissionResource();
$linkResource = new Microsoft\Graph\Model\EducationLinkResource();
$linkResource->setLink($link);
$linkResource->setDisplayName(mb_substr($title, 0, 100)); // as the maximum length is 100
$linkResource->setODataType('#microsoft.graph.educationLinkResource');
$submissionResource->setResource($linkResource);

$graph
    ->createRequest(
        'POST',
        "/education/classes/{$courseId}/assignments/{$courseWorkId}/submissions/{$submissionId}/resources"
    )
    ->addHeaders(["Content-Type" => "application/json"])
    ->attachBody($submissionResource)
    ->execute();

响应始终相同(标识符被隐藏):

Client error: `POST https://graph.microsoft.com/v1.0/education/classes/[...]/assignments/[...]/submissions/[...]/resources` resulted in a `400 Bad Request` response:

{"error":{"code":"10017","message":"Bad Request.","innerError":{"date":"2023-11-29T15:14:35","request-id":"[...]","client-request-id":"[...]"}}}

但没有指出问题是什么。有没有人发现自己处于类似情况并有一些提示?

谢谢

php microsoft-teams
1个回答
0
投票

好吧,经过几天的调查,问题似乎是每次学生完成任务时,我们都会向 Microsoft Teams 发送相同的链接资源,并且错误仅在第一次之后才会出现。

结论:如果您将相同的资源发送到已拥有该资源的提交,Teams 会响应错误。

© www.soinside.com 2019 - 2024. All rights reserved.