私はphpに電報ボットコードを持ち、replyWithMessage
メソッドで送信するメッセージに返信します。
ここにすべてのコマンド:
$this->replyWithMessage(['text' => $item['title']. "\n\n" . $url]);
テキストの前にプレビュー画像を追加するにはどうすればよいですか?
/sendphoto
を使用して、画像の下に表示されるcaption
を設定できます。
https://core.telegram.org/bots/api#sendphoto
画像とテキストの両方を含むテキストメッセージを送信することはできません。ただし、テキストにURLが含まれる場合、TelegramはデフォルトでWebページのプレビューを表示します。または、2つのメッセージを順番に送信するか、キャプション付きの写真を送信できます。
いいえ、写真を含むテキストを1つのメッセージで送信できます。テレグラムを使用すると、これを行うことができますが、その方法はちょっとトリッキーです。
disable_web_page_preview
=> false
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);