Pues me ha interesado que desde la palma de mi mano «mi movil» tenga los resultados de distintos scripts que ya tengo programados. Que algunos se envian por mail, y otros acumulan en una hoja de excel.
Para conseguir eso he encontrado una parte de codigo que he adaptado a mi gusto «os dejo el original»
Para ello me baso en el resultado del script pasando a una variable. ¡¡¡IMPORTANTE!!! la salida siempre debera ser en string, si no telegram no sera capaz de leerla. Solucionable con un comodo y fácil |out-string
$mensaje = "Lo que querraisenviar" #Importante String
$BotKey = "$$$$"#Vuestro bot key
$ChatID = "$$$$" #Donde quereis que se envie (pueden ser varios)
function Send-TeleMessage([string] $BotKey , [array] $ChatIDs , [string] $Message)
{#Se cre la variable con la URL de la API que ejecuta el envío del mensaje
$sendMsgLink = "https://api.telegram.org/bot$BotKey/sendMessage"
#Se crea al bucle para cada elemento del Array
foreach ($ID in $ChatIDs)
{
try
{#Se ejecuta el POST a la URL
$ExecuteInvokeWeb = Invoke-WebRequest -Uri "$sendMsgLink" -Method Post -ContentType "application/json;charset=utf-8" -Body (ConvertTo-Json -Compress -InputObject @{chat_id=$ID; text="$Message"}) -ErrorAction SilentlyContinue
#Se recibe el resultado del POST
$Status = (ConvertFrom-Json -InputObject $ExecuteInvokeWeb.Content)
#Si el resultado, es ok, envia un mensaje satisfactorio, sino hace un catch del error y lo muestra.
if($Status.ok){Write-Host "El mensaje se envío correctamente al Chat ID : $ID (Type : $($Status.result.chat.type))" -ForegroundColor Green}
}
catch [Exception]
{
$exception = $_.Exception.ToString().Split(".")[2]
Write-Host "Falló el envío del mensaje al Chat ID : $ID ($exception)" -ForegroundColor Red
}
}
}
#Se ejecuta la función con los parametros necesarios
Send-TeleMessage -BotKey $BotKey -ChatIDs $ChatID -Message $mensaje
Para saber donde esta vuestro ID de grupo/chat enviad un mensaje a vuestro Bot desde la ubicación y poneros en la pagina de la API

Espero que os sea de utilidad!

Deja una respuesta