Usando a API Java da sala de aula do Google no servidor Tomcat como uma API restante

Aug 17 2020

Quero usar a API Java do Google Classroom no servidor Tomcat como uma API REST.

  1. Quero que o código do lado do cliente gere um token de acesso e atualize o token e os transmita aos pontos de extremidade da API REST.
  2. A API REST então usa o token acima para chamar o seguinte código para obter a lista de cursos: objectOf(Classroom).courses().list().setPageSize(100).execute();

Estou criando o Classroom da seguinte forma, onde .getCredentials()usa GoogleAuthorizationCodeFlow.Builderpara criar a credencial necessária, mas abre uma janela do navegador para autorizar o usuário e obter o token. Isso não funciona para mim.

NetHttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    Classroom classRoom = new Classroom.Builder(httpTransport, JSON_FACTORY, getCredentials(httpTransport))
            .setApplicationName(APPLICATION_NAME).build();

Respostas

Jacques-GuzelHeron Aug 18 2020 at 09:39

Entendo que você deseja receber tokens de atualização e acesso para usá-los posteriormente no Google Sala de aula; e você deseja executar esta operação de um servidor. Se isso estiver correto, você precisará fazer o login como sua conta para provar sua identidade e receber as credenciais, mas existem algumas alternativas.

Como você executará o código de um servidor, poderá seguir estas etapas para criar suas credenciais. Essas credenciais precisam ser salvas na pasta de trabalho uma vez e podem ser lidas a cada execução.

Como alternativa, você pode criar uma conta de serviço e usá-la para atingir seus objetivos se quiser interagir com o Sala de aula como um usuário diferente da sua organização. Lembre-se de ativar a delegação de todo o domínio para esta etapa. Não hesite em responder se tiver alguma dúvida.