Aqui você encontra as URL e métodos necessários para registrar acompanamentos e gerar o link da avaliação. Com esse arquivo, será possivel obter todos os códigos exigidos na integração do seu serviço. Preencha corretamente seu usuário e senha no momento da execução.
Utilizamos Python para exemplificar e elucidar todas as dúuvidas:
import requests
import base64
siorg_orgao = " " #Informe o codigo SIORG do seu órgão
usuario = " " #Email que foi cadastrado para acessar a API
senha = " " #Senha liberada para o acesso a API
url_acompanhamento_testes = "https://h-acompanhamento-govbrapi.estaleiro.serpro.gov.br/api/acompanhamento/"
url_acompanhamento_situacao_testes = "https://h-acompanhamento-govbrapi.estaleiro.serpro.gov.br/api/acompanhamento/situacao"
url_avaliacao_teste = "https://h-avaliacao-govbrapi.estaleiro.serpro.gov.br/api/avaliacao/formulario"
url_acompanhamento_producao = "https://acompanhamento.servicos.gov.br/api/acompanhamento/"
url_acompanhamento_situacao_producao = "https://acompanhamento.servicos.gov.br/api/acompanhamento/situacao"
url_avaliacao_producao = "https://avaliacao.servicos.gov.br/api/avaliacao/formulario?completo=false"
url_servico_teste = "https://h-api-servicos.estaleiro.serpro.gov.br/api/v1/servicos/orgao/"
url_servico_producao = "https://servicos.gov.br/api/v1/servicos/orgao/"
url_cod_orgao_api_teste = "https://h-api-servicos.estaleiro.serpro.gov.br/api/v1/orgao/"
url_cod_orgao_api_producao = "https://servicos.gov.br/api/v1/orgao/"
def create_session_pesquisar():
sess = requests.Session()
sess.headers.update({
'Accept': 'application/json'
})
return sess
def consultar_cod_orgao_api_teste():
pesq = create_session_pesquisar()
retorno = pesq.get(url=f'{url_cod_orgao_api_teste}{siorg_orgao}')
print(retorno.json()["id"])
pesq.close()
def consultar_cod_orgao_api_producao():
pesq = create_session_pesquisar()
retorno = pesq.get(url=f'{url_cod_orgao_api_producao}{siorg_orgao}')
print(retorno.json()["id"])
pesq.close()
def pesquisar_servicos_teste():
pesq = create_session_pesquisar()
retorno = pesq.get(url=f'{url_servico_teste}{siorg_orgao}')
for aux in retorno.json()['resposta']:
print(f'{aux["idDb"]} - {aux["nome"]}')
pesq.close()
def pesquisar_servicos_producao():
pesq = create_session_pesquisar()
retorno = pesq.get(url=f'{url_servico_producao}{siorg_orgao}')
for aux in retorno.json()['resposta']:
print(f'{(aux["id"]).split("https://servicos.gov.br/api/v1/servicos/")[1]} - {aux["nome"]}')
pesq.close()
def gerar_base64():
encoded = base64.b64encode(f'{usuario}:{senha}'.encode('ascii'))
return encoded.decode()
def create_session():
sess = requests.Session()
sess.headers.update({
'Content-Type': 'application/json;charset=UTF-8',
'Accept': 'application/json',
'Authorization': f'Basic {gerar_base64()}'
})
return sess
def create_situacao_acompanhamento():
body = {
"cpfCidadao": "41333618069",
"orgao": "36802",
"protocolo": "Teste_125",
"servico": "47",
"situacaoServico": "2" #Situação atual do Serviço. 1 - Em Aberto, 2 - Concluído.
}
sess = create_session()
response = sess.put(url=url_acompanhamento_situacao_testes, json=body)
'''
200 Registrado a conclusão/reabertura do serviço informado
400 Erro nos dados enviados ao servidor
'''
print(response.status_code)
print(response.content)
sess.close()
def create_acompanhamento():
body = {
"cpfCidadao": "41333618069",
"dataEtapa": "10/10/2017",
"dataSituacaoEtapa": "10/10/2017",
"etapa": "Em Processamento.",
"orgao": "36802",
"protocolo": "Teste_125",
"servico": "47",
"situacaoEtapa": "Alguma descrição da situação."
}
sess = create_session()
response = sess.post(url=url_acompanhamento_testes, json=body)
'''
201 Acompanhamento criado com sucesso
400 Erro nos dados enviados ao servidor
401 Não Autenticado
403 Autenticado sem autorização
404 Recurso não encontrado
500 Erro Interno do Servidor
'''
print(response.status_code)
print(response.content)
sess.close()
def create_avaliacao():
body = {
"canalAvaliacao": "4",
"canalPrestacao": "4",
"cpfCidadao": "41333618069",
"etapa": "Em Processamento.",
"orgao": "36802",
"protocolo": "Teste_125",
"servico": "47"
}
sess = create_session()
response = sess.post(url=url_avaliacao_teste, json=body)
'''
200 Link para o formulário
400 Erro nos dados enviados ao servidor
'''
print(response.status_code)
print(response.content)
sess.close()
def main():
print("Serviços disponíveis no ambiente de testes:")
pesquisar_servicos_teste()
print("\nServiços no ambiente de produção:")
pesquisar_servicos_producao()
print("\nCodigo do orgão para ser usado na API de Avaliação (teste):")
consultar_cod_orgao_api_teste()
print("\nCodigo do orgão para ser usado na API de Avaliação (produção):")
consultar_cod_orgao_api_producao()
print("\nUse isto no Authorization da sua requisição (usuario e senha em Base64):")
print(f'Basic {gerar_base64()}')
create_acompanhamento()
create_situacao_acompanhamento()
create_avaliacao()
if __name__ == '__main__':
main()