-
-
Notifications
You must be signed in to change notification settings - Fork 176
✉️ Via Post
KillovSky edited this page Jul 8, 2024
·
1 revision
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.
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.
- Substitua
exemplo:8080
pela URL e porta corretas fornecidas pelo seu serviço. - Substitua
seu_username
esua_senha
pelos valores apropriados do seu arquivoconfig.json
. - O
chatId
pode ser obtido através da página de logs ou terminal da Íris.
- O parâmetro
code
será executado somente se a permissão estiver configurada corretamente no arquivoconfig.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. Usefalse
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.
- 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
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
#!/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
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
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
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}"