Principais Cenários
Olhe a lista de soluções comuns usando nossa API



Listar alunos de uma escola

A escola com ClassApp tem seus IDs de entidades. Portanto, para que a integração funcione bem, pode ser necessário construir uma tabela de relacionamentos para associar seus IDs a IDs de ClassApp:

StudentSchool IDSchool ID (ClassApp)Entity IDEntity ID (ClassApp)

Bill Gates

11200981012

Linus Torvalds

11200991013

Steve Jobs

10199901011

POST as x-www-form-urlencoded:

https://joy.classapp.co/graphql?access_token=YOUR_TOKEN_HERE


query {
  node(id: $classappSchoolID) {
    ... on Organization {
      fullname
      entities(type: STUDENT) {
        totalCount
        nodes {
          id: dbId
          fullname
          eid
        }

      }
    }
  }
}
Teste Aqui!

Importar atributos do aluno e campos relacionados

O aluno no classapp chama Entity com o tipo Student. Para importar um aluno no ClassApp, você precisará coletar alguns dados:

Aluno

Nome completo
Turma
Celular Aluno
Email Aluno
Campos Relacionados

ID da Organization
Celular do Responsável
Email do Responsável
Outros contatos dos Responsáveis

POST as x-www-form-urlencoded:

https://joy.classapp.co/graphql?access_token=YOUR_TOKEN_HERE


mutation {
  importEntity( input: {
    organizationId: $classappSchoolID,
    fullname: $studentName,
    type:STUDENT,
    eid: $externalID,
    addresses:[
      {
      address: $email,
      type: EMAIL,
      tags: [
          {name: $emailTag},
        ],
      },
      {
      address: $phonenumber,
      type: PHONE,
      tags: [
          {name: $phoneTag}
        ],
      },
    ],
    groups:[
      {name: $groupName}
    ],
    attach:[
      "groups",
      "addresses"
    ]
    }){
    entity{
      dbId
      fullname
      eid
    }
  }
}
Teste Aqui!



Multiplas inserções em uma requisição
É possível adicionar 10 mutações / solicitação para maximizar o desempenho do seu aplicativo, use um "clientMutationId", é útil para rastrear a solicitação de erro. Para lidar com o relatório de erros, é uma prática recomendada salvar a solicitação de carga útil com um objeto de mensagem de erro e enviá-la para avaliar sua situação.

Envie uma mensagem no ClassApp

Para enviar uma mensagem usando a API ClassApp, você precisa entender a associação de entidades e tags.

Entity
é o caminho para encontrar seus usuários Responsáveis ou Pais. Use a tabela de relações para localizar o ID de entidade relativo ao aluno em seu sistema.
Tag
é responsável por direcionar a mensagem para o usuário correto. Se um endereço X (e-mail ou telefone) pertencer a um pai, ele possui uma etiqueta associativa, como: "Pai", "Responsável" ou "Diretor Financeiro".

POST as x-www-form-urlencoded:

https://joy.classapp.co/graphql?access_token=YOUR_TOKEN_HERE


mutation {
  createMessage(input:{
    entityId: $messageAuthor,
    subject: $messageTitle,
    content: $messageBody,
    recipients:{
      entityIds: [$studentIDs],
      groupIds: [$groupIDs],
      eids: [$externalIDs]
    },
    tags: [
      {id: $whichUserOfEntity}
    ],
  }){
    message{
      dbId
      subject
      recipientsCount
      recipients{
        nodes{
          entityId
        }
      }
    }
  }
}
Teste Aqui!

Envie uma mensagem com o PDF anexado

Para enviar um arquivo PDF anexado a uma mensagem usando nossa API, você precisará fazer o UPLOAD do arquivo para o seu servidor, obter o novo nome de arquivo e, em seguida, usar o nome do arquivo na entrada de mutação createMessage.

POST as form-data:

https://joy.classapp.co/graphql?access_token=YOUR_TOKEN_HERE&target=media

Envie esta mutação no corpo como
query
e o PDF como
file

mutation {
  createMedia(input:{
    clientMutationId: $clientMutationId
  }){
    media{
      filename
      uri
      origName
    }
  }
}
Tamanho dos Arquivos
Não envie um arquivo PDF maior que 10MB
POST as x-www-form-urlencoded:

https://joy.classapp.co/graphql?access_token=YOUR_TOKEN_HERE

Basta adicionar uma referência em PDF ao compor a mensagem
Medias
filename

mutation {
  createMessage(input:{
    entityId: $messageAuthor,
    subject: $messageTitle,
    content: $messageBody,
    recipients:{
      entityIds: [$studentIDs]
    },
    tags: [
      {id: $whichUserOfEntity}
    ],
    medias: [
      {
        filename: $fileName,
        type: FILE
      }
    ],
  }){
    message{
      dbId
      subject
      medias{
        nodes{
          dbId
          filename
        }
      }
      recipientsCount
      recipients{
        nodes{
          entityId
        }
      }
    }
  }
}
Teste Aqui!