Bu, Classroom eklentilerindeki adım adım açıklamalı yedinci kılavuzdur. size yol gösterir.
Bu adım adım açıklamalı kılavuzda, eklenti oluşturmak için bir web uygulamasına
e-posta eklerini gönderin. Bu davranışı kullanarak
Kullanıcılar mevcut ürününüzden veya web sitenizden eklenti ekleri oluşturur. Bu
Mevcut kampanyaları doğrudan yönlendirdiğiniz için CourseWork
entegrasyonuna harika bir
ve eklentinizin sunduğu iyileştirilmiş kullanıcı deneyimi sayesinde,
takip edebilirsiniz. Önerilen işlem, Ek oluşturma
sayfasını ziyaret edin.
Ayrıca, eklentiyi kullanarak bir atamayı değiştirmek için eklentinize davranış da eklersiniz. ekleyebilirsiniz. Aşağıdakilerden birini içeren herhangi bir ödevi değiştirebilirsiniz: eklenti eklerinizi kullanabilirsiniz. Bu özellikle, öğrenci belli bir ödevi tamamladıktan sonra ödevleri teslim öğretmene atanan görevlerin tamamlandığına dair sinyal vererek ve öğrencinin çalışması incelenmeye hazır.
Eklentinizin content-type veya activity-type ekler. Bu kılavuzdaki içerik türü eki kullanılmıştır.
Ödev yönetimi OAuth kapsamını ekleme
Uygulamanızın aşağıdaki kapsamları istediğinden emin olun:
https://www.googleapis.com/auth/classroom.addons.teacher
https://www.googleapis.com/auth/classroom.addons.student
https://www.googleapis.com/auth/classroom.coursework.students
classroom.coursework.students
kapsamına daha önce ihtiyaç duyulmamıştı ve şu anda
CourseWork
atamayı oluşturmak veya değiştirmek için kullanılır. Bu kapsamı listelere ekleyin
kapsamlarının
Google Workspace Marketplace SDK'sı, OAuth izin ekranı ve
sunucu kodu yerine kullanılabilir.
Python
SCOPES = [
"https://www.googleapis.com/auth/classroom.addons.teacher",
"https://www.googleapis.com/auth/classroom.addons.student",
"https://www.googleapis.com/auth/classroom.coursework.students",
]
Classroom'da ödev oluşturma
iframe içermeyen web sayfalarına düğme ekleme
Bu adım adım açıklamalı kılavuzda açıklanan akış, kullanıcının
Google'a ait olmayan bir üründen alınan Google Classroom ödevleri ve ekleri. İçinde
mevcut web siteniz veya uygulamanız olabilir. Bu örnekte
harici bir site olarak işleyecek bir web sayfası oluşturma örneği oluşturmanız gerekir. Düğmenin olması gerekir
veya bağlantı tıklandığında, önerilen işlemi gerçekleştiren yeni bir rota açan
CourseWork
akışını tıklayın.
Ayrıca, kullanıcının oturum açmasına izin vermek için bir düğme veya bağlantı eklemeniz gerekir: CANNOT TRANSLATE Sonraki Bu nedenle, OAuth 2.0 el sıkışmasını tamamlamaları gerekir. Bkz. oturum açma adım adım açıklamalı kılavuzu inceleyin.
Python
Sağlanan Python örneği, sunulan /index
rotasını değiştirir
Buradaki ilk adım adım açıklamalı kılavuz adımına göz atın.
<!-- /webapp/templates/index.html -->
<a href="clear-credentials.html">Logout</a>
<a href="start-auth-flow.html">Login</a>
<br>
<a href="create-coursework-assignment.html">Create a CourseWork Assignment</a>
Web sitenizdeki bir hedefi temsil edecek bir HTML şablonu ekleyin. Bu sayfa
CourseWork
öğesine eklenecek içeriği temsil eder
atama.
<!-- /webapp/templates/example-coursework-assignment.html -->
<h1>CourseWork assignment loaded!</h1>
<p>You've loaded a CourseWork assignment! It was created from an external web page.</p>
CourseWork ile ilgili rotaları işlemek için yeni bir Python modül dosyası oluşturun.
Sağladığımız örneğimizde bu, coursework_routes.py
. Aşağıdakileri ekleyin:
üç rota; içeriğin bir kısmını daha sonra dolduracağınızı unutmayın.
# /webapp/coursework_routes.py
@app.route("/create-coursework-assignment")
def create_coursework_assignment():
"""
Completes the assignment creation flow.
"""
# Check that the user is signed in. If not, perform the OAuth 2.0
# authorization flow.
credentials = get_credentials()
if not credentials:
return start_auth_flow("coursework_assignment_callback")
# Construct the Google Classroom service.
classroom_service = get_classroom_service()
pass # To be completed later.
@app.route("/example-coursework-assignment/<assignment_type>")
def example_coursework_assignment(assignment_type):
"""
Renders the "example-coursework-assignment.html" template.
"""
return flask.render_template(
"example-coursework-assignment.html", assignment_type=assignment_type
)
@app.route("/coursework-assignment-callback")
def coursework_assignment_callback():
"""
Completes the OAuth 2.0 handshake and stores credentials in the session.
This is identical to the callback introduced in the sign-in walkthrough,
but redirects the user to the index page instead of the attachment
discovery page.
"""
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
CLIENT_SECRETS_FILE,
scopes=SCOPES,
state=flask.session["state"],
redirect_uri=flask.url_for("coursework_assignment_callback", _external=True),
)
flow.fetch_token(authorization_response=flask.request.url)
credentials = flow.credentials
flask.session["credentials"] = session_credentials_to_dict(
credentials
)
# Close the current window and redirect the user to the index page.
return flask.render_template("close-me.html", redirect_destination="index")
Kullanıcının eklenti oluşturmaya uygunluğunu kontrol etme
Hesap oluşturmadan önce bir kullanıcının karşılaması gereken birkaç ön koşul vardır
eklerini ekleyebilirsiniz. Kolaylık sağlamak için Google
courses.checkAddOnCreationEligibility
yöntemini kullanarak kullanıcının
karşılayıp karşılamadığını
görmeye yarar. Ön koşulları karşılayan kullanıcıya
uygun bir kullanıcı olması gerekir.
CourseWork
oluşturma rotası uygulamasına uygunluk kontrolünü ekleyin.
Ardından yanıttaki isCreateAttachmentEligible
alanını test edin. Uygunlar için
eklenti içeren bir ödev oluşturmak için
ekli. Aksi durumda Bağlantı oluşturun
Malzeme. Kursun kimliğini şurada belirtmeniz gerekir:
ödev oluşturmak istiyor. Normalde, bu mesajı
belirtebilirsiniz. Kolaylık sağlaması açısından
açıklayacağım.
Python
# /webapp/coursework_routes.py
@app.route("/create-coursework-assignment")
def create_coursework_assignment():
"""
Completes the assignment creation flow.
"""
# ... Check that the user is signed in and get the Classroom service ...
# The ID of the course to which the assignment will be added.
course_id = 1234567890 # TODO(developer) Replace with an actual course ID.
# Check whether the user can create add-on attachments.
eligibility_response = (
classroom_service.courses()
.checkAddOnCreationEligibility(courseId=course_id)
.execute()
)
is_create_attachment_eligible = eligibility_response.get("isCreateAttachmentEligible")
if is_create_attachment_eligible:
# See the "Create an assignment with add-on attachment for eligible users" section for implementation.
if not is_create_attachment_eligible:
# See the "Create a Link Material" section for implementation.
Uygun kullanıcılar için eklenti eki olan bir ödev oluşturma
Kullanıcı, eklenti eki oluşturmaya uygunsa aşağıdakileri yapın:
- Şurada
courseWork
ataması oluşturmak için API isteği gönderin: Eksiz Google Classroom. - Yeni oluşturulan ödevden
id
öğesini çıkarın. - Yeni bir CourseWork
AddOnAttachment
oluşturun. - Yeni oluşturulan dosyada eklenti eki oluşturma isteği Google Classroom'da ödev.
Python
# /webapp/coursework_routes.py
if is_create_attachment_eligible:
# Create an assignment.
coursework = {
"title": "My CourseWork Assignment with Add-on Attachment",
"description": "Created using the Classroom CourseWork API.",
"workType": "ASSIGNMENT",
"state": "DRAFT", # Set to 'PUBLISHED' to assign to students.
}
# Issue a request to create the assignment.
create_assignment_response = (
classroom_service.courses()
.courseWork()
.create(courseId=course_id, body=coursework)
.execute()
)
# Create an add-on attachment that links to the selected content and
# associate it with the new assignment.
content_url = flask.url_for(
"example_coursework_assignment",
assignment_type="add-on-attachment",
_scheme="https",
_external=True,
)
# Construct an AddOnAttachment instance.
attachment = {
"teacherViewUri": {"uri": content_url},
"studentViewUri": {"uri": content_url},
"title": f'Test Attachment for Assignment {create_assignment_response.get("id")}',
}
# Issue a request to create the attachment.
add_on_attachment_response = (
classroom_service.courses()
.courseWork()
.addOnAttachments()
.create(
courseId=course_id,
itemId=create_assignment_response.get("id"), # ID of the new assignment.
body=attachment,
)
.execute()
)
Bağlantı Materyali Oluşturma
Kullanıcı, eklenti eki oluşturmaya uygun değilse bir bağlantı oluşturun. Bunun yerine aşağıdakileri yaparak materyal oluşturabilirsiniz:
Python
if not is_create_attachment_eligible:
coursework = {
"title": "My CourseWork Assignment with Link Material",
"description": "Created using the Classroom CourseWork API.",
"workType": "ASSIGNMENT",
"state": "DRAFT", # Set to 'PUBLISHED' to assign to students.
# Specify the URL for your content as a Link Material.
"materials": [
{
"link": {
"url": flask.url_for(
"example_coursework_assignment",
assignment_type="link-material",
_scheme="https",
_external=True,
)
}
}
],
}
# Issue a request to create the assignment.
assignment_response = (
classroom_service.courses()
.courseWork()
.create(courseId=course_id, body=coursework)
.execute()
)
Daha önce oluşturulmuş bir ödevi değiştirme
Herhangi bir Google Classroom'a erişebilir, bu Classroom'u değiştirebilir, teslim edebilir, geri alabilir veya Classroom'u geri verebilirsiniz
eklenti eklerinizden en az birine sahip akış öğesi
akış öğesini oluşturdu. Akış öğeleri: Announcement
, CourseWork
atama veya CourseWorkMaterial
.
Bunu göstermek amacıyla belirli bir akış öğesini değiştirecek bir rota ekleyeceksiniz. Bunu kullan oluşturduğunuz akış öğelerine erişebileceğinizi ve bu öğeleri değiştirebileceğinizi doğrulama yöntemi API kullanılarak ve Google Classroom kullanıcı arayüzü üzerinden bir öğretmen tarafından oluşturulur.
İlk düzenlediğiniz web sayfasına bir bağlantı veya düğme daha ekleyin
bu adım adım açıklamalı kılavuzu inceleyin. Bir CourseWork
üzerinde değişiklik yapmak için yeni bir rota açılmalıdır
atama.
Python
Sağlanan Python örneği, değiştirilen /index
rotasını değiştirir
bu adım adım açıklamalı kılavuzun önceki bölümlerinde bulabilirsiniz.
<!-- /webapp/templates/index.html -->
<a href="modify-coursework-assignment.html">Create a CourseWork Assignment</a>
CourseWork ile ilgili rotaları işlemek için yeni bir rota oluşturun. Bu,
coursework_routes.py
dosyası oluşturun.
# Check that the user is signed in.
credentials = get_credentials()
if not credentials:
return start_auth_flow("coursework_assignment_callback")
# Get the Google Classroom service.
classroom_service = get_classroom_service()
# The ID of the course to which the assignment will be added.
# Ordinarily, you'll prompt the user to specify which course to use. For
# simplicity, we use a hard-coded value in this example.
course_id = 1234567890 # TODO(developer) Replace with an actual course ID.
assignment_id = 1234567890 # TODO(developer) Replace with an actual assignment ID.
# Retrieve details about the CourseWork assignment.
get_coursework_response = (
classroom_service.courses()
.courseWork()
.get(courseId=course_id, id=assignment_id)
.execute()
)
# Alter the current title.
assignment_title = f"{get_coursework_response.get('title')} (Modified by API request)"
# Issue a request to modify the assignment.
modify_coursework_response = (
classroom_service.courses()
.courseWork()
.patch(
courseId=course_id,
id=assignment_id,
updateMask="title",
body={"title": assignment_title},
)
.execute()
)
Eklentiyi test etme
Basit bir örnek vermek gerekirse, verilen örneklerde
atama tanımlayıcıları. Bu tanımlayıcıları,
courses
ve get
ile list
yöntemleri için öğretmen kimlik bilgileri
courseWork
kaynakları hakkında daha fazla bilgi edinin. Oluşturulduğunda da
courseWork
ödev.
Test Bağlantısı Materyali oluşturma
Sunucunuzu çalıştırın, ardından dizin sayfanıza gidin ve öğretmen kullanıcısı olarak oturum açın Google Workspace for Education Teaching & Learning veya Plus lisansı. Şu ayarları açıp kapatın: kullanıcının lisans durumu hakkında daha fazla bilgi edinin. Yönetici konsolu'nda yer alan CourseWork Ödevi Oluştur seçeneğini tıklayın. düğmesini tıklayın, ardından Google Classroom kullanıcı arayüzünü açın ve Bağlantı Materyali eki oluşturuldu. Ekte bağlantı verilen web sayfası ve bir URL.
Eklenti eki oluşturmayı test etme
Dizin sayfasına dönün ve Google Workspace for Education Teaching sitesi ile öğretmen kullanıcısı olarak oturum açın & Learning veya Plus lisansı. Create a CourseWork Assignment'ı (Kurs Çalışması Ödevi Oluştur) tıklayın düğmesini tıklayın, ardından Google Classroom kullanıcı arayüzünü açın ve bir eklenti eki oluşturuldu. Ek, eklenti uygulamanızı ve kodunuzda belirtilen başlığı girmeniz gerekir.
Atama değişikliğini test et
Dizin sayfasına dönün ve öğretmen kullanıcısı olarak oturum açtığınızdan emin olun Teaching & Learning veya Plus lisansı. Bir Kurs Çalışmasını Değiştirin Ödev düğmesini tıklayın, ardından Google Classroom kullanıcı arayüzüne dönün ve ödev başlığı değiştirildi.
Tebrikler! Adım adım açıklamalı kılavuz serisini tamamladınız.