PDA

Показать полную графическую версию : Скачать файлы с канала Телеграмм


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 подключиться к определённому каналу телеграмм и скачать все файлы и сообщения за текущий день ?
Возможно ли вообще такое ?

Busla
03-09-2019, 16:27
Uragan66, Есть один канал в Телеграмм, каждый день выкладывают плейлисты, можно скачать по одному, но хотелось бы автоматизировать этот процесс. »
Поставить в клиенте галку "скачивать мультимедию автоматически"

Uragan66
03-09-2019, 16:46
Busla, спасибо попробую. Но так то можно сохранять файлы только при постоянно включенном клиенте.
А бот такой не получится написать ?

Busla
03-09-2019, 22:05
А бот такой не получится написать ? »
получится, но не через бот-API

Uragan66
03-09-2019, 23:20
Busla, да большой разницы то нет через какой API, лишь бы файлы скачивались.
Если можно, дайте, пожалуйста, пример такого бота, смотрел подобный на PHP, но там слишком всё запутано, да и на Windows он не будет работать, только на сервере с Linux.
Попробовал установить "скачивать мультимедию автоматически", в принципе удобно, но в папке телеграмма уже столько мусора, куда только не зайдёшь, мессенджер сразу файлы скачивает...




© OSzone.net 2001-2012