Spaces:
Runtime error
Runtime error
| 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}') | |