Classroom kullanıcı arayüzü beş Sınıf Çalışması türünü destekler: Ödevler,
Test Ödevleri, Kısa yanıtlı sorular, Çoktan seçmeli sorular ve
Malzemeler. Classroom API şu anda bu türlerden üçünü desteklemektedir.
API için CourseWorkType
olarak bilinir: Ödevler, Kısa yanıt
ve çoktan seçmeli sorular arasında seçim yapabilirsiniz.
Bu işleve erişmek için CourseWork kaynağı olduğu için Bu alan, şuradaki öğrencilere atanmış bir Ödev veya Soruyu tüm ek materyaller ve ayrıntılar da dahil olmak üzere görevleri zamanında tamamlamak için veya maks. 10 puan olabilir.
CourseWork kaynağına ek olarak tamamlanmış ödevleri yönetebilirsiniz
StudentSubmission
kaynağıyla değiştirin. Aşağıdaki bölümlerde bu özellikler,
ayrıntılı olarak inceleyelim.
Ödev oluşturma
Ödevler yalnızca dersin öğretmenleri ve öğretmenleri adına oluşturulabilir
bir öğrenci adına derste ödev oluşturmaya çalışmak
403 PERMISSION_DENIED
hatası verir. Benzer şekilde, alan yöneticileri de
Öğretmedikleri derslerle ilgili ödevler verme ve bunu API üzerinden yapmaya çalıştıkları
403 PERMISSION_DENIED
hatasına da neden olur.
courses.courseWork.create
yöntemini kullanarak ödev oluştururken
, aşağıdaki örnek kodda gösterildiği gibi, bağlantıları materials
olarak ekleyebilir:
Java
Python
Sonuç, referans olarak kullanılabilecek, sunucu tarafından atanmış bir tanımlayıcı içerir diğer API isteklerindeki atamayı oluşturur.
Classroom API üzerinden oluşturulan bir ödeve bağlantılı materyalleri dahil etmek için: Aşağıdaki seçenekleri kullanarak bir Kaynağı bağla'yı kullanın: hedef URL. Classroom, başlığı ve küçük resmi otomatik olarak getirir. Classroom API, Google Drive ve YouTube materyallerini yerleşik olarak destekler. bir DriveFile kaynağı veya Benzer bir YouTubeVideo kaynağı sağlar.
Bir teslim tarihi belirtmek için dueDate
ve dueTime
alanlarını
karşılık gelen UTC saatine göre belirlenir. Son tarih gelecekte olmalıdır.
Ödev ve soruları alma
Şuradaki öğrenci ve öğretmenleri için ödev ve soruları alabilirsiniz: bir alan adı yöneticisi tarafından yapılır. Belirli bir veya soruya yanıt vermek istiyorsanız, course.courseWork.get adresini kullanın. Tümünü almak için (isteğe bağlı olarak bazı ölçütlerle eşleşen ödevler veya sorular) courses.courseWork.list.
Gerekli kapsam, istekte bulunan kullanıcının ele alacağız. Kullanıcı bir öğrenciyse aşağıdaki kapsamlardan birini kullanın:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Kullanıcı bir öğretmen veya alan yöneticisi ise aşağıdakilerden birini kullanın: kapsamlar:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Bir ödevi veya soruyu alma iznine sahip olmak, materyallere veya malzeme meta verilerine erişim izinleri. Pratikte bu, ekteki bir Drive dosyasının başlığını göremeyebilir. bu kursun üyesi değilsiniz. Yöneticilerin kullanıcıya erişmesine izin vermek istiyorsanız hakkında daha fazla bilgi için alan genelinde yetki rehberini inceleyin.
Öğrenci yanıtlarını yönetme
StudentSubmission
kaynak, öğrencinin bir ödev için yaptığı çalışmayı ve notunu temsil eder
soru. StudentSubmission
yeni bir soru ortaya çıktığında veya her öğrenci için
atama işlemi oluşturulur.
Aşağıdaki bölümlerde, öğrenci yanıtlarını yöneten yaygın işlemler açıklanmaktadır.
Öğrenci yanıtlarını alma
Öğrenciler kendi gönderimlerini, öğretmenler ise gönderimleri alabilir.
olanak sağlar ve alan yöneticileri tüm öğrencilerin
gönderimlerini ekleyebilirsiniz. Her öğrenci gönderimi
bir tanımlayıcı atayan; tanımlayıcıyı biliyorsanız
Anahtarı almak için courses.courseWork.studentSubmissions.get
.
Aşağıdakileri almak için courses.courseWork.studentSubmissions.list
yöntemini kullanın:
Şu kriterlerde gösterildiği gibi bazı kriterlerle eşleşen StudentSubmission
kaynaklar:
şu örnekteki gibi:
Java
Python
Belirli bir öğrenciye ait StudentSubmission
kaynaklarını şu şekilde alma:
aşağıdaki örnekte gösterildiği gibi userId
parametresini belirtir:
Java
Python
Öğrenciler, kullanıcının benzersiz kimliği veya e-posta adresiyle şu şekilde tanımlanır:
Google Yönetici Konsolu SDK'sı tarafından döndürüldü. Geçerli kullanıcı kendi
"me"
kısaltmasını kullanan kimlik.
Ayrıca, belirli bir zaman dilimindeki tüm ödevler için
ele alacağız. Bunun için courseWorkId
olarak, "-"
değişmez değerini kullanın:
şu örnekteki gibi:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
Gerekli kapsam, istekte bulunan kullanıcının ele alacağız. Kullanıcı bir öğretmen veya alan ise aşağıdaki kapsamı kullanın yönetici:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Kullanıcı bir öğrenciyse aşağıdaki kapsamı kullanın:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Bir öğrencinin ödevini alma iznine sahip olmak, eklere veya ek meta verilerine erişim iznidir. Pratikte bu bir yöneticinin, aşağıdaki durumlarda ekli bir Drive dosyasının başlığını göremeyeceği anlamına gelir: bu kursa üye değiller. Yöneticilerin erişimine izin vermek istiyorsanız kullanıcı dosyalarına eklemek için alan genelinde yetki rehberini inceleyin.
Öğrenci yanıtına dosya ekleme
Bir Link
,
DriveFile
veya YouTubeVideo
kaynağı. Bu işlem şununla yapılır:
courses.courseWork.studentSubmissions.modifyAttachments
,
şu örnekteki gibi:
Java
Python
Bağlantı eki, hedef URL tarafından tanımlanır; Classroom, başlığı ve küçük resmi getirir. Diğer materyaller hakkında bilgi edinmek için şu adresi ziyaret edin: ilgili referans sayfaları oluşturabilirsiniz.
StudentSubmission
yalnızca bir dersin öğretmeni veya tarafından değiştirilebilir.
öğrenciyi seçin. Materials
simgesini yalnızca
Öğrenci gönderiminin CourseWorkType
kadarı ASSIGNMENT
.
Gerekli kapsam, istekte bulunan kullanıcının ele alacağız. Kullanıcı bir öğretmense aşağıdaki kapsamı kullanın:
https://www.googleapis.com/auth/classroom.coursework.students
Kullanıcı bir öğrenciyse aşağıdaki kapsamı kullanın:
https://www.googleapis.com/auth/classroom.coursework.me
Öğrenci yanıtı durumunu yönetme
Bir öğrencinin yanıtı iptal edilebilir, teslim edilebilir veya geri verilebilir. Eyalet alanı
StudentSubmission
ifadesi geçerli durumu belirtir. Durumu değiştirmek için şu numarayı arayın:
aşağıdaki yöntemlerden birini uygulayabilirsiniz:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Tüm bu yöntemler boş bir gövde alır. Örnek:
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Yalnızca StudentSubmission
sahibi olan öğrenci bunu teslim edebilir veya geri almak isteyebilir.
Yalnızca teslim edilmiş ödevler geri alınabilir. Ders öğretmenleri yalnızca
Teslim edilmiş durumdaki StudentSubmission
.
Öğrenci yanıtlarına not verme
StudentSubmission
kaynağında notları depolamak için iki alan bulunur:
Öğrencilere bildirilen not olan assignedGrade
ve draftGrade
,
Bu, yalnızca öğretmenlerin görebildiği geçici bir nottur. Bu alanlar güncellenir
courses.courseWork.studentSubmissions.patch
'i alan maskesiyle kullanarak
aşağıdaki örnekte gösterildiği gibi uygun alanları içeren bir satır öğesi seçin.
Java
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Öğretmenler Classroom kullanıcı arayüzüyle çalışırken, gerekli işlemleri yapana kadar not atayamazlar. önce geçici not kaydettiniz. Böylece, atanan not daha sonra öğrenciyim. Uygulamaların bu davranışı emüle etmesi gerekir. Uygulamanız şunları yapabilir: öğrencinin ödevine iki yöntemden birini kullanarak not verebilirsiniz:
Yalnızca
draftGrade
bilgisini atayın. Bu özellik örneğin, öğretmenin notları manuel olarak incelemelidir. Öğrenciler geçici notları göremez.Bir ödeve tam not vermek için hem
draftGrade
hem deassignedGrade
ödev verin.
Atanan notları listeleme
Belirli bir sınıf çalışması öğesine ilişkin tüm notları
courses.courseWork.studentSubmissions.list
yönteminin yanıt nesnesi:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
pageSize=10).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")