Skip to content

✉️ Via Post

KillovSky edited this page Jul 8, 2024 · 1 revision

🚀 Programando a Íris fora da Íris

Este guia explora como enviar requisições POST via cURL e outras linguagens populares para controlar a Íris de dentro de outros aplicativos ou sistemas, sem a necessidade de modificar seu código JavaScript ou aprender JavaScript.

🔎 Requisitos

Para utilizar este guia, certifique-se de ter:

  • cURL ou sua linguagem de programação preferida instalada no seu sistema.
  • Uma instância da Íris configurada para receber comandos via POST.

🔧 Substituições Necessárias

  • Substitua exemplo:8080 pela URL e porta corretas fornecidas pelo seu serviço.
  • Substitua seu_username e sua_senha pelos valores apropriados do seu arquivo config.json.
  • O chatId pode ser obtido através da página de logs ou terminal da Íris.

⚠️ Notas Importantes

  • O parâmetro code será executado somente se a permissão estiver configurada corretamente no arquivo config.json. Tome cuidado ao usar esta funcionalidade em ambientes não seguros.
  • Se code for enviado, os outros campos do JSON serão ignorados.
  • O parâmetro quoted pode conter dados de menção a uma mensagem específica. Use false se não estiver certo sobre seu uso.
  • O uso de --insecure é necessário para conexões locais ou IPs de rede privada com certificados autoassinados.
  • Utilizando POST, a Íris pode ser integrada em bots, aplicativos e sistemas diversos, permitindo sua inclusão em ambientes variados sem dependência específica.

➕ Exemplos de Integração

  • Aqui estão exemplos de como realizar integrações utilizando cURL e outras linguagens populares.
Formato Geral
{
    "username": "seu_username",
    "password": "sua_senha",
    "code": "Código JS para executar",
    "chatId": "id_do_chat",
    "quoted": false,
    "message": {
      "text": "Oi!"
    }
  }
  • Header necessário: Content-Type: application/json

  • Configuração necessária: Insecure / Skip TLS / Skip SSL (Localhost/Certificado autoassinado)

  • Explicação dos parâmetros do exemplo:

    • username: Seu nome de usuário para autenticação.
    • password: Sua senha para autenticação.
    • code: Código JavaScript opcional para execução.
    • chatId: ID do chat onde a mensagem será enviada.
    • quoted: Boolean (false) ou Object da mensagem a mencionar.
    • message: Objeto contendo a mensagem a ser enviada.
cURL + Bash

Exemplo com cURL

curl --insecure -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "username": "seu_username",
    "password": "sua_senha",
    "code": "Código JS para executar",
    "chatId": "id_do_chat",
    "quoted": false,
    "message": {
      "text": "Oi!"
    }
  }' \
  https://exemplo:8080/send

Exemplo usando Bash com cURL

#!/bin/bash

# Define variáveis para os dados sensíveis
username="seu_username"
password="sua_senha"
code="Código JS para executar"
chatId="id_do_chat"
quoted=false
message='{"text": "Você pode programar seus códigos bash e só inserir a resposta aqui como variável!"}'

# URL de destino
url="https://exemplo:8080/send"

# Executa o comando cURL
curl --insecure -X POST \
  -H "Content-Type: application/json" \
  -u "$username:$password" \
  --data-raw '{
    "username": "'"$username"'",
    "password": "'"$password"'",
    "code": "'"$code"'",
    "chatId": "'"$chatId"'",
    "quoted": '"$quoted"',
    "message": '"$message"'
  }' \
  "$url"

# Verifica o status de saída do cURL
if [ $? -ne 0 ]; then
  echo "Falha ao enviar a requisição."
  exit 1
fi
Python

Exemplo em Python usando requests

import requests
import json

url = 'https://exemplo:8080/send'
text = 'Você pode criar qualquer código em Python aqui e enviar o resultado via POST para Iris.'
headers = {'Content-Type': 'application/json'}
payload = {
    "username": "seu_username",
    "password": "sua_senha",
    "code": "Código JS para executar",
    "chatId": "id_do_chat",
    "quoted": False,
    "message": {
        "text": text
    }
}

response = requests.post(url, headers=headers, data=json.dumps(payload), verify=False)
print(response.status_code)
print(response.json())
Node.js

Exemplo em Node.js usando axios

const axios = require('axios');
const https = require('https');

const text = "Você pode criar qualquer código em Node.js aqui e enviar o resultado via POST para Iris.";

const url = 'https://exemplo:8080/send';
const payload = {
    username: 'seu_username',
    password: 'sua_senha',
    code: 'Código JS para executar',
    chatId: 'id_do_chat',
    quoted: false,
    message: {
        text: text
    }
};

axios.post(url, payload, {
    headers: {
        'Content-Type': 'application/json'
    },
    httpsAgent: new https.Agent({ rejectUnauthorized: false }) // Para certificados autoassinados
})
.then(response => {
    console.log(response.status);
    console.log(response.data);
})
.catch(error => {
    console.error('Erro ao enviar requisição:', error);
});
Ruby

Exemplo em Ruby usando httparty

require 'net/http'
require 'uri'
require 'json'

# Texto da mensagem a ser enviada
text = "Você pode criar qualquer código em Ruby aqui e enviar o resultado via POST para Iris."

# URL da API da Iris e payload da requisição
url = URI('https://exemplo:8080/send')
payload = {
  username: 'seu_username',
  password: 'sua_senha',
  code: 'Código JS opcional para execução',
  chatId: 'id_do_chat',
  quoted: false,
  message: {
    text: text
  }
}

# Criando a requisição POST
request = Net::HTTP::Post.new(url)
request.body = payload.to_json
request['Content-Type'] = 'application/json'

# Fazendo a requisição e capturando a resposta
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true  # Usar SSL/TLS
http.verify_mode = OpenSSL::SSL::VERIFY_NONE  # Usar verify_mode NONE para certificados autoassinados
response = http.request(request)

# Exibindo o status e a resposta
puts "Status: #{response.code}"
puts "Resposta: #{response.body}"