DEV Community

Marcus Andrade
Marcus Andrade

Posted on

1

Como Excluir Cursos no Google Classroom Usando a API do Google

Neste artigo, vamos documentar como usar a API do Google Classroom para listar e excluir cursos. Vamos detalhar o passo a passo necessário para configurar e executar o código Python que realiza essas operações.

Passo a Passo

Autenticação: O código verifica se o arquivo token.json existe para utilizar credenciais armazenadas previamente. Caso contrário, ele inicia o fluxo de autenticação OAuth 2.0.

Listar Cursos: O código chama a API do Google Classroom para listar todos os cursos disponíveis.

Excluir Curso: O código solicita o ID do curso a ser excluído e chama a API para excluir o curso especificado.

Execução
Execute o Script: Execute o script Python.
Autenticação Inicial: Se for a primeira execução, você será redirecionado para uma página de login do Google para conceder permissões ao aplicativo.
Listar Cursos: Após a autenticação, o script listará todos os cursos disponíveis.
Excluir Curso: Insira o ID do curso que você deseja excluir.

Pré-requisitos

  1. Conta do Google: Certifique-se de ter uma conta do Google.
  2. Google Cloud Project: Crie um projeto no Google Cloud Console.
  3. API do Google Classroom: Ative a API do Google Classroom para o seu projeto.
  4. Credenciais OAuth 2.0: Configure as credenciais OAuth 2.0 para o seu projeto.

Configuração do Ambiente

  1. Instale as bibliotecas necessárias: Execute o comando abaixo para instalar as bibliotecas necessárias.

    pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
    
  2. Crie um arquivo credentials.json: Baixe as credenciais OAuth 2.0 do Google Cloud Console e salve-as como credentials.json no diretório do seu projeto.

Código Python

Aqui está o código completo para listar e excluir cursos no Google Classroom:


python
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# Escopos necessários para listar cursos, adicionar alunos e professores, criar e excluir cursos no Google Classroom
SCOPES = [
    "https://www.googleapis.com/auth/classroom.courses",
    "https://www.googleapis.com/auth/classroom.courses.readonly",
    "https://www.googleapis.com/auth/classroom.rosters"
]

def main():
    """
    Código usado para excluir um curso do Google Classroom.
    """
    creds = None
    if os.path.exists("token.json"):
        creds = Credentials.from_authorized_user_file("token.json", SCOPES)
    # Vai pedir autenticação 
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                "credentials.json", SCOPES
            )
            creds = flow.run_local_server(port=0)
        # Salva as credenciais e mostra os cursos
        with open("token.json", "w") as token:
            token.write(creds.to_json())

    try:
        service = build("classroom", "v1", credentials=creds)

        # Lista todos os cursos disponíveis
        list_courses(service)

        # Solicita o ID do curso a ser excluído
        course_id = input("Digite o ID do curso a ser excluído: ")
        delete_course(service, course_id)

    except HttpError as error:
        print(f"An error occurred: {error}")

def list_courses(service):
    try:
        # Chama a API Do classroom para ver os cursos
        results = service.courses().list(pageSize=1000).execute()
        courses = results.get("courses", [])

        if not courses:
            print("No courses found.")
            return

        # Mostra na tela o nome dos cursos criados e salas
        print("Courses:")
        for course in courses:
            print(f'{course["name"]} (ID: {course["id"]})')

    except HttpError as error:
        print(f"An error occurred: {error}")

def delete_course(service, course_id):
    try:
        service.courses().delete(id=course_id).execute()
        print(f"Course with ID {course_id} deleted successfully.")
    except HttpError as error:
        print(f"An error occurred: {error}")

if __name__ == "__main__":
    # Apagar o arquivo token.json para forçar a reautenticação
    if os.path.exists("token.json"):
        os.remove("token.json")
    main()
Enter fullscreen mode Exit fullscreen mode

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay