使用 Google Classroom API 提交简答题

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

我正在尝试通过 Google Classroom API

SHORT_ANSWER_SUBMISSION
获得
coursework

对于课程的补丁请求,用户必须位于同一域下,并且必须具有编辑内容的权限。所有标准均已满足。

课程作业由 [电子邮件受保护] 发布,并且

SHORT_ANSWER_SUBMISSION
是由 [电子邮件受保护]

完成

但它又回来了

        "status": 500,
        "type": "Google_Service_Exception",
        "messages": [
            "{\n  \"error\": {\n    \"code\": 400,\n    \"message\": \"updateMask: updateMask may only contain \\\"draftGrade\\\" or \\\"assignedGrade\\\".\",\n    \"errors\": [\n      {\n        \"message\": \"updateMask: updateMask may only contain \\\"draftGrade\\\" or \\\"assignedGrade\\\".\",\n        \"domain\": \"global\",\n        \"reason\": \"badRequest\"\n      }\n    ],\n    \"status\": \"INVALID_ARGUMENT\"\n  }\n}\n"
        ]
    }

当老师通过相同的API提交assigedGrade或draftGrade时应该给出哪个

这是我的提交对象

Google_Service_Classroom_StudentSubmission {#1362
  #collection_key: "submissionHistory"
  +alternateLink: null
  +assignedGrade: null
  #assignmentSubmissionType: "Google_Service_Classroom_AssignmentSubmission"
  #assignmentSubmissionDataType: ""
  +associatedWithDeveloper: null
  +courseId: null
  +courseWorkId: null
  +courseWorkType: null
  +creationTime: null
  +draftGrade: null
  +id: null
  +late: null
  #multipleChoiceSubmissionType: "Google_Service_Classroom_MultipleChoiceSubmission"
  #multipleChoiceSubmissionDataType: ""
  #shortAnswerSubmissionType: "Google_Service_Classroom_ShortAnswerSubmission"
  #shortAnswerSubmissionDataType: ""
  +state: null
  #submissionHistoryType: "Google_Service_Classroom_SubmissionHistory"
  #submissionHistoryDataType: "array"
  +updateTime: null
  +userId: null
  #internal_gapi_mappings: []
  #modelData: []
  #processed: []
  +"shortAnswerSubmission": Google_Service_Classroom_ShortAnswerSubmission {#1363
    +answer: "abc"
    #internal_gapi_mappings: []
    #modelData: []
    #processed: []
  }
}

我就用了这个方法

$data = $request->all();
$client = setGoogleClient(getOAuthToken());
        $class = new \Google_Service_Classroom($client);
$submission = setShortAnswerSubmission($data);
$response = $class->courses_courseWork_studentSubmissions->patch($courseId, $courseWorkId, $id, $submission);

如何通过Google Classroom API提交

SHORT_ANSWER_SUBMISSION
。是否可以??除了这个找不到其他的了

google-apis-explorer google-classroom
2个回答
0
投票

根据 Classroom API 文档此处

updateMask
> 用于标识学生提交内容中要更新的字段的掩码。需要此字段才能进行更新。如果指定了无效字段,更新将失败。

因此,您收到的错误消息是不言自明的

如果您要执行

PATCH
请求,提交对象应包含
draftGrade
assignedGrade
,但不能包含 两者

参考


0
投票

目前 Google Classroom api 中未公开回答简答题:https://issuetracker.google.com/issues/155218358

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