| Bots de conversa | Exemples | Dades pràctiques | Recursos CITCEA | |
| Google Apps Script | Projectes | Interacció | Inici |
Ens pot interessar informar a través de Telegram quan alguna cosa, amb uns paràmetres determinats, es publica a les xarxes socials. IFTTT té activadors per a les xarxes socials més populars, així com per als llocs d'allotjament de blocs més habituals. En aquest exemple farem servir Twitter, però els passos a seguir serien similars en altres casos.
Comencem amb un exemple senzill. A la pàgina d'IFTTT hem creat el nostre compte i anem a l'opció Create. Primer hem de definir el this, picarem el botó Add i cercarem Twitter. El més pràctic és escriure'n les primeres lletres al cercador. Triarem l'opció New mention of you. Ara toca definir el that, per a això picarem a Add i cercarem Webhooks. Escollirem l'opció Make a web request i ens demanarà la URL que volem activar que, en principi, serà la del nostre script. Ja sabem que aquesta adreça ens la proporcionen en el moment de publicar l'script. Per exemple:
https://script.google.com/macros/s/^^fycbxqrJpVA-KT1sUd8HIta643R3bH4ixpDahttayGSGjkpHUBjPQ/exec
Podríem deixar l'adreça així i fer que la funció doGet de l'script no tingués en compte cap paràmetre. Però ens pot interessar fer servir la funció doGet en diverses aplicacions; per això, enviarem un paràmetre en la comanda:
https://script.google.com/macros/s/^^fycbxqrJpVA-KT1sUd8HIta643R3bH4ixpDahttayGSGjkpHUBjPQ/exec?Accio=twitter
En el desplegable li direm que el mètode és GET i que el contingut és text/plain.
El nostre script pot ser el següent:
var token = "^^34328844:AAFIpk-e7j3UZtYQYQaTduf4hEhnDqIcNXI"; // API Token de Telegram
var telegramUrl = "https://api.telegram.org/bot" + token; // URL que comunica el nostre bot amb Telegram
function doGet(e){
var accio = e.parameter.Accio; // Acció que ha demanat l'usuari
var id = ^^9093476; // Id de Telegram de l'usuari
if (accio == "twitter"){
var text = "Algú t'ha esmentat a Twitter"; // Text que s'envia
sendText(id, text);
}
}
function sendText(chatId,text_env,keyBoard){ // Funció que prepara per enviar un text o un teclat a Telegram
keyBoard = keyBoard || 0;
if(keyBoard.inline_keyboard || keyBoard.keyboard){
var data = {
method: "post",
payload: {
method: "sendMessage",
chat_id: String(chatId),
text: text_env,
parse_mode: "HTML",
reply_markup: JSON.stringify(keyBoard)
}
}
} else {
var data = {
method: "post",
payload: {
method: "sendMessage",
chat_id: String(chatId),
text: text_env,
parse_mode: "HTML"
}
}
}
UrlFetchApp.fetch( telegramUrl + '/', data);
}
Quan l'esdeveniment que fem servir a this pot tenir paràmetres, IFTTT ens els permet emprar, si és possible, a l'hora de fer el that. Per exemple, quan definim l'adreça del webhook podem fer servir el botó Add ingredient per seleccionar algun dels paràmetres que Twitter pot passar al nostre applet.
Modifiquem el nostre applet fent que l'adreça que posem al webhook sigui:
https://script.google.com/macros/s/^^fycbxqrJpVA-KT1sUd8HIta643R3bH4ixpDahttayGSGjkpHUBjPQ/exec?Accio=twitter&usuari=
Llavors piquem el botó Add ingredient i seleccionem UserName. L'adreça ens quedarà així:
https://script.google.com/macros/s/^^fycbxqrJpVA-KT1sUd8HIta643R3bH4ixpDahttayGSGjkpHUBjPQ/exec?Accio=twitter&usuari={{UserName}}
Un cop fet això, guardem l'applet i ens assegurarem que està activat.
Ara podem modificar la funció doGet del nostre script de la següent manera:
function doGet(e){
var accio = e.parameter.Accio; // Acció que ha demanat l'usuari
var usuari = e.parameter.usuari; // Nom de qui ha fet l'esment a Twitter
var id = ^^9093476; // Id de Telegram de l'usuari
if (accio == "twitter"){
var text = "L'usuari " + usuari + " t'ha esmentat a Twitter"; // Text que s'envia
sendText(id, text);
}
}
Les opcions de vincular les xarxes socials a Telegram mitjançant IFTTT i un script són moltes. Anem a comentar un darrer exemple. Imaginem-nos que volem que arribi un missatge al grup de Telegram dels nostres estudiants quan publiquem una piulada a Twitter que els pot interessar. El primer que hem de fer és definir quina etiqueta farem servir per indicar que volem que aquella piulada s'enviï a Telegram; suposem, per exemple, que és #infoEst. Tornem a anar a IFTTT i a this busquem els activadors de Twitter i triem New tweet by you with hashtag. Ens demanarà que indiquem quina etiqueta volem emprar i li posarem la que ja hem comentat. Llavors passarem al that, on tornarem a cercar Webhooks i triarem Make a web request. Ara personalitzarem l'adreça així:
https://script.google.com/macros/s/^^fycbxqrJpVA-KT1sUd8HIta643R3bH4ixpDahttayGSGjkpHUBjPQ/exec?Accio=twitter&url={{LinkToTweet}}
Així, s'enviarà la URL de la piulada al nostre script. Ara el codi de la funció doGet podria ser el següent:
function doGet(e){
var accio = e.parameter.Accio; // Acció que ha demanat l'usuari
var adre = e.parameter.url; // Adreça URL de la piulada
var id = ^^9093476; // Id de Telegram de l'usuari
if (accio == "twitter"){
sendText(id, adre);
}
}

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.