Использование Google Http Batch с Google Classroom Api

Я пишу приложение (использующее PHP), которое добавит студентов в класс Google. Я слежу за документацией по адресу:

https://developers.google.com/classroom/guides/batch

Я использую пакетный запрос для добавления нескольких учеников в Google Classroom. Однако пакетный запрос, похоже, не выполнен. Мой код выглядит следующим образом:

$service = new Google_Service_Classroom($client);

$service->getClient()->setUseBatch(true);

$batch = $service->createBatch();

$courseId = "123456";
$studentEmails = ["[email protected]","[email protected]"];

foreach($studentEmails as $email) {
$student = new Google_Service_Classroom_Student(['userId' => $email]);
$request = $service->courses_students->create($courseId, $student);
$requestId = $email;
$batch->add($request, $requestId);
}

$results = $batch->execute();foreach($results as $responseId => $student) {
$studentEmail = substr($responseId, strlen('response-') );
if ($student instanceof Google_Service_Exception) {
$e = $student;
printf("Error adding user '%s' to the course: %s\n", $studentEmail,
$e->getMessage());
} else {
printf("User '%s' was added as a student to the course.\n",
$student->profile->name->fullName, $courseId);
}
}

$service->getClient()->setUseBatch(false);

Выход этого кода:

Error adding user '[email protected]' to the course: Not Found ...

Тем не менее, как пользователь, так и курс существуют в домене. Если я удаляю код партии и делаю запрос по одному, ученики успешно добавляются в класс, что наводит меня на мысль, что я что-то упустил в запросе партии

1

Решение

Вы можете сначала проверить PHP Быстрый старт и убедитесь, что вы выполнили шаги, описанные в оставшейся части данной страницы, чтобы иметь возможность отправлять запросы к Classroom API, как также упоминалось в использование клиентских библиотек в запросах дозирования.

После успешной установки и настройки библиотек вы можете попробовать примеры кода, демонстрирующие, как выполнять пакетные запросы с помощью клиентских библиотек API Google.

$courseId = '123456';
$studentEmails = array('[email protected]', '[email protected]');
$service->getClient()->setUseBatch(true);
$batch = $service->createBatch();
foreach($studentEmails as $studentEmail) {
$student = new Google_Service_Classroom_Student(array(
'userId' => $studentEmail
));
$request = $service->courses_students->create($courseId, $student);
$requestId = $studentEmail;
$batch->add($request, $requestId);
}
$results = $batch->execute();
foreach($results as $responseId => $student) {
$studentEmail = substr($responseId, strlen('response-') + 1);
if ($student instanceof Google_Service_Exception) {
$e = $student;
printf("Error adding user '%s' to the course: %s\n", $studentEmail,
$e->getMessage());
} else {
printf("User '%s' was added as a student to the course.\n",
$student->profile->name->fullName, $courseId);
}
}
$service->getClient()->setUseBatch(false);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]