텔레그램 봇 API로 이미지+텍스트 같이 보내기 / Telegram Bot send message text with image [Python]
텍스트만 보내거나, 이미지만 보낼 때는 각각
sendMessage / sendPhoto
를 사용하면 된다.
이미지와 텍스트를 한 메세지에 같이 보낼 경우
sendPhoto의 caption을 설정해서 이미지 아래에 캡션을 넣거나
sendMessage를 HTML 비슷하게 마크업 형식으로 보낼 수 있다.
사용 가능한 태그:
[php의 경우]
정확한 용법은 공식 문서를 참조하자
https://core.telegram.org/bots/api#sendmessage
sendMessage / sendPhoto
를 사용하면 된다.
이미지와 텍스트를 한 메세지에 같이 보낼 경우
sendPhoto의 caption을 설정해서 이미지 아래에 캡션을 넣거나
bot.sendPhoto(chat_id=chat_id, photo=img_url, caption="텍스트", reply_markup={"inline_keyboard": [[{ "text": "로그인", "url": "https://teus.me/" },{ "text": "지원", "url": "https://teus.me/" },{ "text": "목록", "url": "https://teus.me/" }]]})
sendMessage를 HTML 비슷하게 마크업 형식으로 보낼 수 있다.
msg_html = '<a href="https://www.carspecs.us/photos/c8447c97e355f462368178b3518367824a757327-2000.jpg"> </a>'
bot.sendMessage(chat_id=chat_id, parse_mode='HTML', text=msg_html)
사용 가능한 태그:
<b>bold</b>, <strong>bold</strong> <i>italic</i>, <em>italic</em> <a href="http://www.example.com/">inline URL</a> <a href="tg://user?id=123456789">inline mention of a user</a> <code>inline fixed-width code</code> <pre>pre-formatted fixed-width code block</pre>
[php의 경우]
- Using https://core.telegram.org/bots/api#sendmessage method, set option
disable_web_page_preview
=>false
- In your
text
data put an image link with invisible character(s) inside your message text.
$message = <<<TEXT
*** your content ***
*** somewhere below (or above) a link to your image with invisible character(s) ***
<a href="https://www.carspecs.us/photos/c8447c97e355f462368178b3518367824a757327-2000.jpg"> </a>
TEXT;
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data']);
curl_setopt($ch, CURLOPT_URL, 'https://api.telegram.org/bot<token>/sendMessage');
$postFields = array(
'chat_id' => '@username',
'text' => $message,
'parse_mode' => 'HTML',
'disable_web_page_preview' => false,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
if(!curl_exec($ch))
echo curl_error($ch);
curl_close($ch);
정확한 용법은 공식 문서를 참조하자
https://core.telegram.org/bots/api#sendmessage