canvas-discussion-grader / discussion.py
rohan13's picture
Grading changes
cc93546
import requests
import json
# Replace these variables with your own information
access_token = 'YOUR_ACCESS_TOKEN'
course_id = '36263'
discussion_topic_id = '421517'
base_url = 'https://canvas.illinois.edu'
headers = {
'Authorization': f'Bearer {access_token}'
}
# Create a content export
export_url = f'{base_url}/api/v1/courses/{course_id}/content_exports'
export_params = {
'export_type': 'common_cartridge',
'skip_notifications': True,
'select': {
'discussion_topics': [discussion_topic_id]
}
}
export_response = requests.post(export_url, headers=headers, params=export_params)
if export_response.ok:
export_data = export_response.json()
export_id = export_data['id']
# Check the progress of the content export
progress_url = f'{base_url}/api/v1/progress/{export_id}'
progress_response = requests.get(progress_url, headers=headers)
if progress_response.ok:
progress_data = progress_response.json()
while progress_data['workflow_state'] not in ['completed', 'failed']:
progress_response = requests.get(progress_url, headers=headers)
progress_data = progress_response.json()
if progress_data['workflow_state'] == 'completed':
# Download the exported content
download_url = progress_data['url']
download_response = requests.get(download_url)
if download_response.ok:
# Save the exported content to a file
with open('discussion_topic_export.imscc', 'wb') as f:
f.write(download_response.content)
else:
print(f'Error: {export_response.text}')