텔레그램 봇 API로 이미지+텍스트 같이 보내기 / Telegram Bot send message text with image [Python]


텍스트만 보내거나, 이미지만 보낼 때는 각각

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의 경우]
  1. Using https://core.telegram.org/bots/api#sendmessage method, set option disable_web_page_preview => false
  2. 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

다음 글 이전 글
댓글 쓰기
comment url