Exemplos da API REST
Enviando Notificações
Enviar notificações pelo Login Cidadão é tão fácil quanto fazer uma requisição POST autenticada por OAuth 2.
Autenticação
Você pode autenticar via Client Credentials ou informando diretamente o Access Token de uma pessoa. Se você está enviando mais de uma notificação e faz algum tempo desde que o Access Token foi emitido, então usar Client Credentials é altamente recomendado e é uma ideia melhor já que você economizará seu limite da API visto que não terá que solicitar novos Access Tokens para diversas pessoas.
Enviando uma Notificação
Para criar uma notificação basta fazer uma requisição POST para nossa API de Notificações, autenticada com OAuth 2 com um Access Token e informando, pelo menos, estes parâmetros:
- title: o título da notificação
- shortText: uma breve descrição
- person: o Identificador Único do destinatário
- sender: o Identificador Único do seu Client OAuth
- category: o Identificador Único da categoria da notificação
- placeholders: os Placeholders da notificação
Um exemplo de requisição POST poderia ser o seguinte:
POST /api/v1/person/notification.json HTTP/1.1 Host: meu.rs.gov.br Content-Type: application/x-www-form-urlencoded Authorization: Bearer M2M5YjgzNj...ZDg4OTJiNA title=My+Nice+Title&shortText=This+is+the+notification%27s+brief+description&person=23521&sender=42&category=953&placeholders%5Bname%5D=Fulano+de+Tal&placeholders%5BextraInfo%5D=Something+here
Neste exemplo, estamos enviando os seguintes dados:
{ "title": "My Nice Title", "shortText": "This is the notification's brief description", "person": 23521, "sender": 42, "category": 953, "placeholders": { "name": "Fulano de Tal", "extraInfo": "Something here" } }
Como resposta, você receberá um status code HTTP 201, como qualquer API RESTful deveria, mas como cortesia nós também lhe retornaremos o ID da notificação recém criada como nesse exemplo:
{ "id": 654 }
Recebendo o retorno de leitura da notificação
Para receber um aviso de que o destinatario da notificação leu a mensagem deve-se acrescentar na notificação o parâmentro callbackUrl
:
{ ... "callbackUrl" : "https://mysite/" ... }
Caso tenha sido informado uma URL no parâmetro callbackUrl
da notificação, no momento em que usuário ler a notificação será enviando um requisição para aquele endereço.
A requisição será do tipo POST e devolverá dois parâmetros, o parametro data
e o parâmetro signature
.
O parâmetro data
é uma estrutura de dados serializada no formato JSON. Nessa estrutura temos os seguintes dados:
{ //o identificador único da notificação 'id': 1, //o identificador único do usuário 'person_id': 1, //a data e hora da leitura da notificação no formato Unix timestamp 'read_date': 1272509157 }
O parâmetro signature
é uma assinatura do tipo HMAC
, usando a função sha256
sobre a informação contida no parâmetro data
. A senha utilizada para fazer essa assinatura é a Chave privada (ou Secret) do Client OAuth. Dessa forma, é possivel garantir a autenticidade do mensagem enviada.