Como mandar archivos de audio y localizaciones gps mediante nuestro bot de Telegram en nodejs

Antes de empezar os dejo los enlaces de los 2 anteriores tutórales para que los tengáis como referencia:

En este nuevo tutorial vamos a continuar con el envió de imagenes comentado en el post anterior. Ahora lo que vamos a hacer es añadirle a la imagen el "caption". El caption es el texto que se puede poner debajo de una imagén, video, ect... como comentario. Este comentario se pone usando el siguiente código: {caption : ""}

Como vais a poder en este ejemplo se enviara una imagen que incluye el comentario que está entre comillas dentro de caption

bot.onText(//testfoto/, (msg) => {
bot.sendPhoto(msg.chat.id,"/content/images/2017/11/node-telegram-bot-intro.jpg%22,%7Bcaption : "Esto es un comentario debajo de una foto "} );
});

Mandar archivos de audio

Como sabéis Telegram soporta cualquier tipo de fichero. Así que al mandar un archivo de audio tenéis todos los formatos disponibles como por ejemplo opus, mp3,ogg, ect... Pero esto no significa que Telegram por si solo pueda reproducir todos los tipos de ficheros. Los dos mejores formatos para mandar archivos de audio son mp3 o ogg. A continuación os dejo un ejemplo con cada formato:

  bot.onText(/\/testaudio/, (msg) => {
  bot.sendAudio(msg.chat.id,"https://archive.org/download/soy-lisa/soy-lisa.ogg",{caption : "Soy un archivo ogg "} );  
 });
  bot.onText(/\/testmp3/, (msg) => {
  bot.sendAudio(msg.chat.id,"https://archive.org/download/soy-lisa/soy-lisa.mp3",{caption : "Soy un archivo mp3 "} );  
 });

Mandar notas de voz

Además de mandar audio en Telegram también puedes hacer que un bot mande los archivos de audio (mp3, ogg, ...) como si fueran notas de voz mandadas por el propio bot. A continuación os dejo 2 ejemplos uno con la captation (el comentario) en mp3 y otro en ogg sin captation

   bot.onText(/\/voice/, (msg) => {
   const url = 'https://archive.org/download/soy-lisa/soy-lisa.ogg';
   const audio = request(url);
   bot.sendVoice(msg.chat.id, audio);  
  });
   bot.onText(/\/mp3voice/, (msg) => {
   const url = 'https://archive.org/download/soy-lisa/soy-lisa.mp3';
   const audio = request(url);
   bot.sendVoice(msg.chat.id,audio,{caption : "Soy una nota de voz en formato mp3 "} );  
  });

Enviar la localización

Para poder enviar una localización necesitas saber la latitud y longitud. Para este ejemplo decidí usar la latitud 0 y longitud 0 que representa la ubicación de la "Null Island". Vosotros podéis elegir cualquiera ubicación si modificáis en esta linea "bot.sendLocation(msg.chat.id,0,0);" los números 0,0 por cualquier otra ubicación. En este caso cada vez que se mande la palabra "casa" se mandará la ubicación.

 bot.on('message', (msg) => {
     var localizacion = "casa";
     if (msg.text.indexOf(localizacion) === 0) {
         bot.sendLocation(msg.chat.id,0,0);
     }
 });