Я пытаюсь пригласить пользователя в Google Classroom с помощью следующего кода PHP:
$paramertos = array(
"role" => "STUDENT",
"userId" => $mail,
"courseId" => $courseId
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://classroom.googleapis.com/v1/invitations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $paramertos,
CURLOPT_HTTPHEADER => array(
"authorization: Bearer $access_token")
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error:" . $err;
} else {
$response = json_decode($response, true);
var_dump($response);
}
Результат:
array(1) {
["error"]=> array(3) {
["code"]=> int(400)
["message"]=> string(37) "Request contains an invalid argument."["status"]=> string(16) "INVALID_ARGUMENT"}
}
$ Access_token, $ mail и $ courseId верны.
Любая помощь будет оценена.
Я нашел решение в поиске Клиентская библиотека Google API код. Не найдена документация для приглашений.
$service = new Google_Service_Classroom($client);
$googleInvitation = new Google_Service_Classroom_Invitation(
array("role" => "STUDENT",
"userId" => $mail,
"courseId" => $courseId)
);
try{
$invitationRes = $service->invitations->create($googleInvitation);
}catch(Exception $exception){
echo $exception;
die();
}
var_dump($invitationRes);
Ошибка 400 означает, что вы создали неверный запрос.
НЕДЕЙСТВИТЕЛЬНЫМ АРГУМЕНТ если аргумент запроса искажен.
Для облегчения кодирования вы можете использовать Клиентская библиотека Google API. Вот пример кода, который поможет вам лучше понять клиентскую библиотеку Google PHP (к сожалению, у меня нет примера кода для создания приглашения).
$courseId = '123456';
$teacherEmail = '[email protected]';
$teacher = new Google_Service_Classroom_Teacher(array(
'userId' => $teacherEmail
));
try {
$teacher = $service->courses_teachers->create($courseId, $teacher);
printf("User '%s' was added as a teacher to the course with ID '%s'.\n",
$teacher->profile->name->fullName, $courseId);
} catch (Google_Service_Exception $e) {
if ($e->getCode() == 409) {
printf("User '%s' is already a member of this course.\n", $teacherEmail);
} else {
throw $e;
}
}
Надеюсь это поможет.