Tengo un problema con el envío de la api a través de mensajes de texto de Telegram que llegan pero las imágenes no llegan y no entiendo dónde está el problema. ¿Es posible modificar este código y hacer que envíe imágenes?
var telegram_bot_id = "api"; var chat_id = "id"; var img; var ready = function () { img = document.getElementById("photo").value; message = "photo: " + img ; }; var sender = function () { ready(); var settings = { "async": true, "crossDomain": true, "url": "https://api.telegram.org/bot" + telegram_bot_id + "/sendPhoto", "method": "POST", "headers": { "Content-Type": "application/json", "cache-control": "no-cache" }, "data": JSON.stringify({ "chat_id": chat_id, "text": message }) }; $.ajax(settings).done(function (response) { console.log(response); window.location.href = "index.html"; }); document.getElementById("photo").value = ""; return false; };Para poder enviar una foto a través del método sendPhoto , debe enviar un archivo de imagen adecuado o una cadena que represente una URL válida .
De acuerdo con el código que publicaste, estás enviando a la solicitud HTTP como parámetros del cuerpo el chat_id, el mensaje de texto en sí y eso es todo.
El método sendPhoto no espera un campo de texto , eso se usa en el método sendMessage .
En su caso, dado que está intentando enviar a través del chatbot de Telegram una imagen tomada de la entidad HTML, que en este caso no es la imagen en sí sino su ruta en su servidor web , debe cambiar el cuerpo de la solicitud POST y configurar el URL de la imagen como parámetro de la propia solicitud.
Para concluir, si desea agregar el mensaje de texto , el método sendPhoto le permite agregarlo pero como título .
Por ejemplo:
var telegram_bot_id = "api"; var chat_id = "id"; var img; var ready = function () { img = "http://your-website.com/imagepath/imagename.png"; }; var sender = function () { ready(); var settings = { "async": true, "crossDomain": true, "url": "https://api.telegram.org/bot" + telegram_bot_id + "/sendPhoto", "method": "POST", "headers": { "Content-Type": "application/json", "cache-control": "no-cache" }, "data": JSON.stringify({ "chat_id": chat_id, "photo": img, "caption": message }) }; $.ajax(settings).done(function (response) { console.log(response); window.location.href = "index.html"; }); return false; };