[Techinfo] Classroom kurzusok tagjai
Kámán Tibor
kamant at freemail.hu
2020. Nov. 14., Szo, 10:30:27 CET
Igen, műlködik. Megvannak a hiányzók. :D
"József Venczel" <venczelj69 at gmail.com> írta:
>Készen is van://------------------------------------------------------------function Kurzuslistazo() {
>
> var nextPageToken = "";
> var sor=1;
>
> do {
> var optionalArgs = { pageSize: 10,
> pageToken: nextPageToken,
> fields: "nextPageToken,courses(id,name)" };
>
> var lista = Classroom.Courses.list(optionalArgs);
>
> var nextPageToken = lista.nextPageToken;
>
> for (var i = 0; i < lista.courses.length; i++){
> if(lista.courses[i].name.indexOf("teszt")<0){
> SpreadsheetApp.getActiveSheet().getRange(sor,1).setValue(lista.courses[i].name);
> sor++;
>
> tanarok=Classroom.Courses.Teachers.list(lista.courses[i].id);
> if(tanarok.teachers)
> for(var j = 0; j<tanarok.teachers.length; j++){
> SpreadsheetApp.getActiveSheet().getRange(sor,2).setValue(tanarok.teachers[j].profile.name.fullName);
> sor++;
> }
>
> var nextPageToken2 = "";
> do{
> var studentsArgs = { pageSize: 30,
> pageToken: nextPageToken2};
> diakok=Classroom.Courses.Students.list(lista.courses[i].id, studentsArgs);
> if(diakok.students)
> for(var j = 0; j<diakok.students.length; j++){
> SpreadsheetApp.getActiveSheet().getRange(sor,2).setValue(diakok.students[j].profile.name.fullName);
> sor++;
> }
>
> nextPageToken2 = diakok.nextPageToken;
> } while (nextPageToken2)
> }
> }
>
> } while (nextPageToken);
>}//------------------------------------------------------------ Most már tökéletes a script!Legalább is, amíg valaki nem talál benne másik hibát ;o)A tanárok esetében meg remélhetően nincs erre szükség ;o) Üdv,Venczel József József Venczel <venczelj69 at gmail.com> ezt írta (időpont: 2020. nov. 13., P, 23:18):
>>Szia! Rákerestem, amit Te találtál, az csak egy Stackoverflow-os blogbejegyzés.Ne dőlj be neki! ;o)A leírásában az van, hogy csak egyszerre nem listáz többet: https://developers.google.com/classroom/reference/rest/v1/courses.students/list Erre nem figyeltem. Akkor ezt is be kell tenni egy "lapozó ciklusba". Mindjárt javítom. A Google API lekérdező, listázó része mind így működik. Olyan, mintha a grafikus felületét használnád.A kurzusoknál is egyszerre max. 500-at listáz ki.Erre ők sem figyeltek, úgyhogy az a példaprogram, amit hozzá írtak a dokumentációban, nem is működik jól ;o) Üdv,Venczel József Kámán Tibor <kamant at freemail.hu> ezt írta (időpont: 2020. nov. 13., P, 22:47):
>>>Sajnos ezt találtam: "The limitation seems to be that the Classroom API will not return more than 30 students for some reason."
>>>Azaz kb.:
>>>Úgy tűnik, hogy az a korlátozás, hogy a Classroom API valamilyen oknál fogva nem ad vissza 30 tanulónál többet.
>Készen is van://------------------------------------------------------------function Kurzuslistazo() { var nextPageToken = ""; var sor=1; do { var optionalArgs = { pageSize: 10, pageToken: nextPageToken, fields: "nextPageToken,courses(id,name)" }; var lista = Classroom.Courses.list(optionalArgs); var nextPageToken = lista.nextPageToken; for (var i = 0; i if(lista.courses[i].name.indexOf("teszt") SpreadsheetApp.getActiveSheet().getRange(sor,1).setValue(lista.courses[i].name); sor++; tanarok=Classroom.Courses.Teachers.list(lista.courses[i].id); if(tanarok.teachers) for(var j = 0; j SpreadsheetApp.getActiveSheet().getRange(sor,2).setValue(tanarok.teachers[j].profile.name.fullName); sor++; } var nextPageToken2 = ""; do{ var studentsArgs = { pageSize: 30, pageToken: nextPageToken2}; diakok=Classroom.Courses.Students.list(lista.courses[i].id, studentsArgs); if(diakok.students) for(var j = 0; j SpreadsheetApp.getActiveSheet().getRange(sor,2).setValue(diakok.students[j].profile.name.fullName); sor++; } nextPageToken2 = diakok.nextPageToken; } while (nextPageToken2) } } } while (nextPageToken);}
>//------------------------------------------------------------ Most már tökéletes a script! Legalább is, amíg valaki nem talál benne másik hibát
>;o)
>
>A tanárok esetében meg remélhetően nincs erre szükség ;o)Üdv,Venczel JózsefJózsef Venczel venczelj69 at gmail.com> ezt írta (időpont: 2020. nov. 13., P, 23:18):Szia!Rákerestem, amit Te találtál, az csak egy Stackoverflow-os blogbejegyzés.Ne dőlj be neki! ;o)A leírásában az van, hogy csak egyszerre nem listáz többet: https://developers.google.com/classroom/reference/rest/v1/courses.students/list
>Erre nem figyeltem. Akkor ezt is be kell tenni egy "lapozó ciklusba". Mindjárt javítom.A Google API lekérdező, listázó része mind így működik. Olyan, mintha a grafikus felületét használnád.A kurzusoknál is egyszerre max. 500-at listáz ki.Erre ők sem figyeltek, úgyhogy az a példaprogram, amit hozzá írtak a dokumentációban, nem is működik jól ;o) Üdv,Venczel JózsefKámán Tibor kamant at freemail.hu> ezt írta (időpont: 2020. nov. 13., P, 22:47):Sajnos ezt találtam: "The limitation seems to be that the Classroom API will not return more than 30 students for some reason."Azaz kb.: Úgy tűnik, hogy az a korlátozás, hogy a Classroom API valamilyen oknál fogva nem ad vissza 30 tanulónál többet.
>
>
>_______________________________________________
>Techinfo mailing list
>Techinfo at lista.sulinet.hu
>Fel- és leiratkozás: http://lista.sulinet.hu/cgi-bin/mailman/listinfo/techinfo
>Illemtan: http://www.szag.hu/illemtan.html
>Ügyfélszolgálat FAQ: http://sulinet.niif.hu/
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lista.sulinet.hu/pipermail/techinfo/attachments/20201114/9739f1ad/attachment.html>
További információk a(z) Techinfo levelezőlistáról