[TUTORIAL] Envio de Arquivos / macros para Telegram (PowerShell)

Bem-vindo!

Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.

Registrar agora!
Status
Não está aberto para novas respostas.
Entrou
Out 13, 2015
Mensagens
486
Pontuação de reação
152
Idade
23
Localização
Brazil
Cubos
1
Olá, para você que como eu gosta de automação.
Objetivo
Desenvolver um Script que vai logo mais fazer parte de algo maior que estou desenvolvendo que integrará o modpack juntamente com um grupo de telegram, enviando arquivos, registros em tempo real do que ocorre dentro da modpack.

Deixo para a comunidade com intuito que possa auxiliar novos desenvolvedores em algum projeto.
Resultados e recomendações
No tutorial de hoje trago um Script desenvolvido em PowerShell para enviar arquivos quaisquer que você queira para o Telegram.
O Script funciona obtendo o arquivo e enviando ele via API para o grupo desejado.


Dados interessantes para leitura:

Como Utilizar:
  1. Salve o arquivo como PowerShell (Extensão deve ser ps1).
  2. Execute com o PowerShell ou programe no agendador de tarefas.
  3. Uso a seu critério, não me responsabilizo com devida utilização.
#Informações do script
#O arquivo tem de possuir dados, arquivo vazio não é enviado.
#Deve gerar um BOT por exemplo no BotFather para poder


# Configurações
$BotToken = '6397064394:AAFqhYc_f8gnVK5g2lSV08CCcJu7K30Tus5'
$ChatID = '-1001948244931'
$FilePath = 'basedados.sql'


# Verifica se o arquivo existe
if (-not (Test-Path $FilePath)) {
Write-Host "Arquivo não encontrado: $FilePath"
exit 1
}

# Lê o conteúdo do arquivo em bytes
$fileBytes = [System.IO.File]::ReadAllBytes($FilePath)

# Monta o corpo da requisição
$boundary = "----WebKitFormBoundary" + [Guid]::NewGuid().ToString()
$Body = "--$boundary`r`n" +
"Content-Disposition: form-data; name=`"chat_id`"`r`n`r`n" +
"$ChatID`r`n" +
"--$boundary`r`n" +
"Content-Disposition: form-data; name=`"document`"; filename=`"$(Split-Path -Leaf $FilePath)`"`r`n" +
"Content-Type: application/octet-stream`r`n`r`n" +
[System.Text.Encoding]::UTF8.GetString($fileBytes) + "`r`n" +
"--$boundary--`r`n"

# URL da API do Telegram
$Uri = "https://api.telegram.org/bot$BotToken/sendDocument"

# Envia a requisição
try {
$response = Invoke-RestMethod -Uri $Uri -Method Post -Body ([System.Text.Encoding]::UTF8.GetBytes($Body)) -ContentType "multipart/form-data; boundary=$boundary"

if ($response.ok) {
Write-Host "[Y] Documento enviado com sucesso!"
} else {
Write-Host "[X] Erro ao enviar: $($response.description)"
}
} catch {
Write-Error "Erro ao enviar o documento: $_"
}

Trabalho Futuro
Desenvolvimento de uma sequência utilizando macro e PowerShell para enviar informações da conta do jogador como Nivel de Skills atual no momento da leitura.
Visto isso para o jogador ter controle, por exemplo, de qual Nivel que está e está upando ou travado.

Abraços, até breve.
 
Status
Não está aberto para novas respostas.

Usuários que estão visualizando este tópico

Voltar
Topo