J'ai du code telegram-bot sur php et je réponds aux messages envoyés par la méthode replyWithMessage
.
Toutes les commandes ici:
$this->replyWithMessage(['text' => $item['title']. "\n\n" . $url]);
Comment puis-je ajouter une image d'aperçu avant le texte?
Vous pouvez utiliser /sendphoto
et définissez le caption
qui apparaît sous une image.
https://core.telegram.org/bots/api#sendphoto
Vous ne pouvez pas envoyer de SMS contenant à la fois une image et du texte. Cependant, si votre texte contient une URL, Telegram affiche un aperçu de la page Web par défaut. Ou vous pouvez envoyer deux messages l'un après l'autre ou envoyer une photo avec légende.
Non, vous POUVEZ envoyer un texte contenant une photo dans un seul message. Le télégramme vous permet de faire cela mais que la voie est plutôt délicate.
disable_web_page_preview
=> false
text
, placez un lien d'image avec des caractères invisibles dans le texte de votre message.Exemple:
$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);