← Вернуться к списку тем

Как отправить картинку вместо текста

Здравствуйте,

подскажите, пожалуйста,
? как вместо текста отправить картинку с кнопками buildInlineKeyBoardButton()
(без ссылки в тесте на адрес картинки, типа http://site/img/123.jpg)

Ответы


  • Игорь Next [07.09.2020 в 02:40 → Игорь Next]
    отправил картинку методом sendPhoto и добавил к ней подпись (caption),
    но как добавить надпись сверху картинки?
    или
    как можно саму картинку поместить в тело одного сообщения (message),
    чтобы картинка была в середине текста

    скрин https://prnt.sc/ucot90

    public function sendPhoto($text='', $filename = 'data/img.png', $buttons = NULL, $is_menu = false) {	
    		$data_send = array(
    			'chat_id' => $this->getChatId(),
    			'caption' => $text,
    			'photo'     => new CURLFile(realpath($filename))
    		);
    		
    		if (!is_null($buttons) && is_array($buttons)) {
    			if($is_menu){$data_send['reply_markup'] = $this->getKeyBoard($buttons);
    			}else{$data_send['reply_markup'] = $this->getInlineKeyBoard($buttons);}
                    }
    		$this->botApiQueryPhoto($data_send);
    }
    
    public function botApiQueryPhoto($fields = array())  {
    		$url = 'https://api.telegram.org/bot' . $this->token .  '/sendPhoto?chat_id=' . $this->getChatId();
                    $ch = curl_init(); 
    		curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Content-Type:multipart/form-data"));
    		curl_setopt($ch, CURLOPT_URL, $url); 
    		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    		curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
    		$output = curl_exec($ch);
    		return $output;
    }
  • iMakeBots [07.09.2020 в 12:39 → Игорь Next]
    Телеграм не предоставляет на данный момент привычной для нас HTML разметки.
    Картинка считается как медиа контент с возможным добавление описания к ней снизу.

    Вставка картинки в виде ссылки в тексте где она выводиться как предпросмотр снизу текста - это своего рода лайфхак.