Uragan66
03-09-2019, 16:05
Добрый день всем!
Есть один канал в Телеграмм, каждый день выкладывают плейлисты, можно скачать по одному, но хотелось бы автоматизировать этот процесс.
Зарегистрировал своего бота, получил токен, id канала тоже есть. Но вот какую команду ввести, чтобы через API телеграмма подключиться к этому каналу и скачать файлы за текущий день, понять не могу. Пересмотрел много примеров ботов, но не могу найти как подключаться именно к каналу.
К примеру есть такой бот:
$ChatTimeout = 1
$UpdateId = 0
$token = "bot token"
$Path = "c:\"
##### Получаем сообщение как обычно
$URL = "https://api.telegram.org/bot$token/getUpdates?offset=$UpdateId&timeout=$ChatTimeout"
$Request = Invoke-WebRequest -Uri $URL -Method Get
$content = ConvertFrom-Json $Request.content
# если на выходе 2 и более результатов возьмем только последний
$str = $content.result | select -First 1
$str = ($str).message
##### Если в сообщение передается файл то будут дополнительные поля
# так например мы можем узнать что нам передали картинку
if ( $($str.document).mime_type -eq "image/jpeg" ) { $isJPG = $true }
##### Если есть file_name то значит там чтото лежит
# документ на скачивание есть?
if ( $($str.document).file_name -ne $null ) {
### разные данные например для логирования
$DocFileName = ($str.document).file_name
$DocFileID = ($str.document).file_id
$DocFileSize = ($str.document).file_size
# получаем сылку на файл исполняя команду бота /getFile
$URL = "https://api.telegram.org/bot$token/getFile?file_id=$DocFileID"
$RequestFile = Invoke-WebRequest -Uri $URL
### в $RequestFile если все верно содержится ссылка на скачивание
foreach ( $JSON in $((ConvertFrom-Json $RequestFile.Content).result) ) {
$FilePath = $json.file_path
$URL = "https://api.telegram.org/file/bot$token/$FilePath"
$FilePath = Split-Path -Leaf $FilePath
$OutputFile = "$Path\$FilePath"
# качаем без проверки
Invoke-WebRequest -Uri $URL -OutFile $OutputFile
}
}
Но в этом коде тоже нет примера подключения к каналу.
Подскажите, пожалуйста, можно ли скриптом powershell подключиться к определённому каналу телеграмм и скачать все файлы и сообщения за текущий день ?
Возможно ли вообще такое ?
Есть один канал в Телеграмм, каждый день выкладывают плейлисты, можно скачать по одному, но хотелось бы автоматизировать этот процесс.
Зарегистрировал своего бота, получил токен, id канала тоже есть. Но вот какую команду ввести, чтобы через API телеграмма подключиться к этому каналу и скачать файлы за текущий день, понять не могу. Пересмотрел много примеров ботов, но не могу найти как подключаться именно к каналу.
К примеру есть такой бот:
$ChatTimeout = 1
$UpdateId = 0
$token = "bot token"
$Path = "c:\"
##### Получаем сообщение как обычно
$URL = "https://api.telegram.org/bot$token/getUpdates?offset=$UpdateId&timeout=$ChatTimeout"
$Request = Invoke-WebRequest -Uri $URL -Method Get
$content = ConvertFrom-Json $Request.content
# если на выходе 2 и более результатов возьмем только последний
$str = $content.result | select -First 1
$str = ($str).message
##### Если в сообщение передается файл то будут дополнительные поля
# так например мы можем узнать что нам передали картинку
if ( $($str.document).mime_type -eq "image/jpeg" ) { $isJPG = $true }
##### Если есть file_name то значит там чтото лежит
# документ на скачивание есть?
if ( $($str.document).file_name -ne $null ) {
### разные данные например для логирования
$DocFileName = ($str.document).file_name
$DocFileID = ($str.document).file_id
$DocFileSize = ($str.document).file_size
# получаем сылку на файл исполняя команду бота /getFile
$URL = "https://api.telegram.org/bot$token/getFile?file_id=$DocFileID"
$RequestFile = Invoke-WebRequest -Uri $URL
### в $RequestFile если все верно содержится ссылка на скачивание
foreach ( $JSON in $((ConvertFrom-Json $RequestFile.Content).result) ) {
$FilePath = $json.file_path
$URL = "https://api.telegram.org/file/bot$token/$FilePath"
$FilePath = Split-Path -Leaf $FilePath
$OutputFile = "$Path\$FilePath"
# качаем без проверки
Invoke-WebRequest -Uri $URL -OutFile $OutputFile
}
}
Но в этом коде тоже нет примера подключения к каналу.
Подскажите, пожалуйста, можно ли скриптом powershell подключиться к определённому каналу телеграмм и скачать все файлы и сообщения за текущий день ?
Возможно ли вообще такое ?