#php #google-oauth #google-api-php-client #google-api-client #google-classroom
Вопрос:
Я хочу обновить черновую оценку и присвоенную оценку из Google Classroom с помощью API. Следующая проблема возникает, когда я тестирую, чтобы обновить черновую оценку и присвоенные оценки, используя этот API.
Проблема:1
{
"error": {
"code": 403,
"message": "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
"status": "PERMISSION_DENIED"
}
}
Эта ошибка может быть вызвана использованием недостаточного типа учетных данных.
Попробуйте использовать OAuth 2.0.
Код локального Хоста:
$client = getClient();
$service = new Google_Service_Classroom($client);
$courseId = '393351980716';
$courseWorkId = '393445838699';
$id = 'Cg0Iu5q5vHkQ657M2bkL';
$post_body = new Google_Service_Classroom_StudentSubmission(array(
'assignedGrade' => 10,
'draftGrade' => 90
));
$params = array(
'updateMask' => 'assignedGrade,draftGrade'
);
$list = $service->courses_courseWork_studentSubmissions->patch($courseId, $courseWorkId, $id, $post_body,$params);
Затем, когда я запускаю приведенный выше код на локальном хосте, я вижу проблему-2:
Проблема-2
Fatal error: Uncaught GoogleServiceException: {
"error": {
"code": 403,
"message": "@ProjectPermissionDenied The Developer Console project is not pe
rmitted to make this request.",
"errors": [
{
"message": "@ProjectPermissionDenied The Developer Console project is no
t permitted to make this request.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
Как решить эту проблему?
Ответ №1:
В соответствии с документацией Classroom API:
ProjectPermissionDenied
указывает, что запрос пытался изменить ресурс, связанный с другим проектом Консоли разработчика.Возможное действие: Укажите, что ваше приложение не может выполнить желаемый запрос. Это может быть сделано только проектом Консоли разработчика с идентификатором клиента OAuth, который создал ресурс.
Поэтому, если ресурс, который вы пытаетесь изменить, был создан, например, вручную, это означает, что он не связан с каким-либо проектом разработчика, следовательно, вы получаете ошибку.
Вам придется создать эти ресурсы в одном проекте, чтобы успешно выполнить этот запрос.
Ссылка
Комментарии:
1. Теперь я могу обновить черновую оценку, используя среду Try this API , потому что я создал курс вручную, где «связано с разработчиком»: верно . Но я не могу обновить черновую оценку с помощью localhost. Я обновил свой вопрос, Теперь вышеуказанная проблема-2 РАЗРЕШЕНИЕ_ОПРЕДЕЛЕНО появляется всякий раз, когда я хочу обновить черновую оценку с локального хоста. Как решить проблему-2.
Ответ №2:
Для этого запроса API вашему ключу API требуется одна из следующих разрешенных областей
Для областей авторизации требуется одна из следующих областей OAuth:
https://www.googleapis.com/auth/classroom.coursework.students
https://www.googleapis.com/auth/classroom.coursework.me
Комментарии:
1. Я уже добавил эти области. Но я не могу обновить черновую оценку с помощью localhost. Теперь описанная выше проблема-2 РАЗРЕШЕНИЯ_ОПРЕДЕЛЕНО появляется всякий раз, когда я хочу обновить черновую оценку с локального хоста. Как решить проблему-2.