список студентов API класса Google

Может ли кто-нибудь помочь мне перечислить студентов для определенного класса, используя Google Classroom API. Я искал документацию по API и не могу понять, как это сделать.

Мне в основном нужно сделать это
https://developers.google.com/classroom/reference/rest/v1/courses.students/list

Вот код, который я использую. Работает с другими функциями (например, $service->students->listCoursesStudents($course_id);):

function G_Course_Roster($course_id) {

$clientId = '111111111111111111';
$serviceAccountName = '[email protected]';
$delegatedAdmin = '[email protected]';
// service account p12 key file:
$keyFile = '/home/rootfolder/vendor/Google OAuth Login-1111111111.p12';
$appName = 'name';
$scopes = array(
'https://www.googleapis.com/auth/classroom.profile.emails',
'https://www.googleapis.com/auth/classroom.profile.photos',
'https://www.googleapis.com/auth/classroom.rosters.readonly'
);
$creds = new Google_Auth_AssertionCredentials(
$serviceAccountName,
$scopes,
file_get_contents($keyFile)
);
$creds->sub = $delegatedAdmin;
$client = new Google_Client();
$client->setApplicationName($appName);
$client->setClientId($clientId);
$client->setAssertionCredentials($creds);
$service = new Google_Service_Classroom($client);
$optParams = array(
'courseId' => $course_id
);
$response = $service->students->listCoursesStudents($course_id);
return $response;

}

0

Решение

Я пробовал в скрипте приложений, и он работает правильно. Вот фрагмент кода:

function listStudent(){

var optionalArgs = {
pageSize: 10
};
var response = Classroom.Courses.list(optionalArgs);
var courses = response.courses;
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
var course = courses[i];
Logger.log('%s (%s)', course.name, course.id);

var response2 = Classroom.Courses.Students.list(course.id)
var students = response2.students;
if(students && students.length > 0){
for (j = 0; j < students.length; j++){
var student = students[j];
Logger.log('%s (%s)', student.profile, student.userId);
}
}}
} else {
Logger.log('No courses found.');
}

}

Вы можете проверить это, извинения, если это не в коде PHP.

Надеюсь это поможет.

0

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

Хорошо, исправление для PHP: $ response = $ service-> courses_students-> listCoursesStudents ($ course_id);

Я в основном должен был предположить основанный на сообщении выше от Mr.Rebot. Если кто-то знает, где находится документация PHP для Google, я был бы признателен за ссылку

function G_Course_Roster ($ course_id) {

$clientId = '111111111111111111';
$serviceAccountName = '[email protected]';
$delegatedAdmin = '[email protected]';
// service account p12 key file:
$keyFile = '/home/rootfolder/vendor/Google OAuth Login-1111111111.p12';
$appName = 'name';
$scopes = array(
'https://www.googleapis.com/auth/classroom.profile.emails',
'https://www.googleapis.com/auth/classroom.profile.photos',
'https://www.googleapis.com/auth/classroom.rosters.readonly'
);
$creds = new Google_Auth_AssertionCredentials(
$serviceAccountName,
$scopes,
file_get_contents($keyFile)
);
$creds->sub = $delegatedAdmin;
$client = new Google_Client();
$client->setApplicationName($appName);
$client->setClientId($clientId);
$client->setAssertionCredentials($creds);
$service = new Google_Service_Classroom($client);
$optParams = array(
'courseId' => $course_id
);
$response = $service->courses_students->listCoursesStudents($course_id);
return $response;

}

0

Вот код, который я придумал. Этот код перечисляет студентов из каждого курса на отдельной вкладке в листах.

Кажется, ограничением является то, что Classroom API по какой-то причине не вернет более 30 студентов.

    function listStudents() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var optionalArgs = {
pageSize: 0
};

//var response = Classroom.Courses.list();
var courses = Classroom.Courses.list(optionalArgs).courses;for (var c = 0; c < courses.length; c++) {
var course = courses[c];
var courseName = course.name;
var courseId = course.id;
var students = Classroom.Courses.Students.list(courseId).students;

ss.insertSheet(course.name);
ss.getRange("A1").setValue('Last Name');
ss.getRange("B1").setValue('First Name');
ss.getRange("C1").setValue('Email');
ss.getRange("D1").setValue('ID');
ss.getActiveSheet().getRange(1,1,1,4).setBackground('silver').setFontSize(12).setFontWeight('bold');
ss.setFrozenRows(1);for( var i = 0; i<students.length; i++) {var student = students[i];
var profile = student.profile;
var firstName = profile.name.givenName;
var lastName = profile.name.familyName;
var email = profile.emailAddress;

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(i+2, 1).setValue(lastName);
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(i+2, 2).setValue(firstName);
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(i+2, 3).setValue(email);
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(i+2, 4).setValue(email.substring(1,6));

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