Надсилання будь-яких файлів Telegram bot API

Блог Фрилансера 1 хвилин 19 секунд 19 бер. 2019
 Надсилання будь-яких файлів Telegram bot API

Телеграм за замовчуванням за посиланням може приймати лише 3 типи файлів  JPG PDF MP4 зокрема метод sendDocument.

Щоб надіслати будь-який файл, потрібно передавати  параметри файлу.

Нижче представлено функцію, яка надсилає файли будь-якого типу. 

// $file_url-можна передавати url будь-якого файлу до 50 МБ
//$token - token бота
//$chatID - ID чату куди відправляємо файл

function SendTelFile($file_url,$token,$chatID) {
    $ ch = curl_init ($ file_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    $html = curl_exec($ch);
    curl_close($ch);

    file_put_contents(basename($file_url), $html);

    $ curl = curl_init ();
    curl_setopt_array($curl, [
        CURLOPT_URL => 'https://api.telegram.org/bot'.$token.'/sendDocument?caption=Вкладення&chat_id='.$chatID,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'Content-Type: multipart/form-data'
        ],
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => [
            'document' => curl_file_create(basename($file_url), mime_content_type(basename($file_url)), basename($file_url))

        ]
    ]);
    $ data = curl_exec ($ curl);
    curl_close ($ curl);


  }