@EVG82

Как на php реализовать передачу видео вместе с сообщением в телеграмм боте?

Бьюсь над задачей. И уверен, что все должно быть просто.
Реализовано следующее: при команде старт
появляется сначала картинка под ней текст и под текстом кнопка. то есть видно что текст и фото отдельные сообщения.
как это объединить?

Второй вопрос.

Какая конструкция кода передает видео в сообщении?

Вот код, который вроде работает

header('Content-Type: text/html; charset=utf-8');
// подрубаем API
require_once("vendor/autoload.php");

// создаем переменную бота
$token = "1264639615:AAEAu5owEhNTH4H-hJ4jNg";
$bot = new \TelegramBot\Api\Client($token);

// если бот еще не зарегистрирован - регистрируем
if(!file_exists("registered.trigger")){ 
	/**
	 * файл registered.trigger будет создаваться после регистрации бота. 
	 * если этого файла нет значит бот не зарегистрирован 
	 */
	 
	// URl текущей страницы
	$page_url = "https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
	$result = $bot->setWebhook($page_url);
	if($result){
		file_put_contents("registered.trigger",time()); // создаем файл дабы прекратить повторные регистрации
	}
}

// Кнопки у сообщений
//================ вызывается команда бота появлется сообщение и под ним кнопка "смотреть видео"============
$bot->command("start", function ($message) use ($bot) {
   	$keyboard = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup(
		[
			[
				['callback_data' => 'data_test', 'text' => 'Смотреть видео 1', 'one_time_keyboard' => true],
				//['callback_data' => 'data_test2', 'text' => 'ОтветЪ']  втоаря кнопка. пока не нужна
			]
		]
	);
//	$url = "BAACAgIAAxkBAAICcV9927FlDPwZfFNk3uh2CpB0vMV5AAJUCQACwK5-9mnPhcGwQ";
	$pic = "AgACAgIAAxkBAAICb199ye19M9O6eiEoftEtwXIHwXCUAAIEszEbitzxS4_hUZs9pFpCYq1sli4AAwEABGwQ";
	//$bot->sendVideo($message->getChat()->getId(), $video);
	//$sendVideo = new SendVideo();
    //$sendVideo->chat_id = A_USER_CHAT_ID;
    //$sendVideo->video = new InputFile('/video/1_spasaem_mir.mp4');
    //$sendVideo->caption = 'тут описание видео';
	//$bot->sendVideo([ 'chat_id' => $chat_id, 'video' => $url, 'caption' => "Описание видео" ]);
    $bot->sendPhoto($message->getChat()->getId(), $pic);
    $bot->sendMessage($message->getChat()->getId(), "Здравствуйте, {{first_name}}!  ", false, null,null,$keyboard);
  • Вопрос задан
  • 810 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanArst
@DanArst
Гриффиндор в моде при любой погоде!
появляется сначала картинка под ней текст и под текстом кнопка. то есть видно что текст и фото отдельные сообщения.
как это объединить?

Используйте метод sendPhoto, а текст пишите в caption к нему, вместо использования sendMessage - тогда будут объединенные.

Как на php реализовать передачу видео вместе с сообщением

Также как и в предыдущем варианте, только вместо sendPhoto используется sendVideo и соответственно caption к нему
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы