| Bots de conversa | Exemples | Dades pràctiques | Recursos CITCEA | |
| Google Apps Script | Projectes | Interacció | Inici |
És possible publicar una fotografia al bot de conversa i que aquest generi una variable amb el text contingut a la imatge, fent servir reconeixement òptic de caràcters (OCR). Amb aquest text, segons les aplicacions, podríem fer algun tractament, traduir-lo o altres coses que se'ns puguin acudir.
La funció que farem servir rep les dades de la fotografia enviada (obtingudes amb data.message.photo, n'obté la fotografia i la guarda en un document de Google Drive amb l'opció de reconeixement òptic de caràcters activada. Després obre el fitxer, n'extreu el text i marca el fitxer com esborrat. Es fa servir un bloc try-catch per si hi ha algun problema en la gestió del reconeixement òptic.
En aquesta funció s'empra el servei Drive. Si és la primera vegada que el fem servir al nostre entorn de Google Apps Script ens caldrà habilitar-lo.
function TextOcr(foto){
try{
// La foto es recull en forma de vector
// Normalment el darrer element del vector és el que té millor resolució
var llarg = foto.length;
var fitxer = foto[llarg - 1].file_id;
// Demanem la imatge a Telegram
var url_document = telegramUrl + "/getFile?file_id=" + fitxer;
// Recollim la imatge rebuda
var document = UrlFetchApp.fetch(url_document);
// Recull el text rebut
var json_document= document.getContentText();
// Tracta el JSON rebut
var dades = JSON.parse(json_document);
// Ruta del document
var ruta_document = dades.result.file_path;
// Adreça completa del fitxer
var documentUrl = "https://api.telegram.org/file/bot" + token + "/" + ruta_document;
// Agafem el BLOB de la imatge
var imatge = UrlFetchApp.fetch(documentUrl).getBlob();
var file = {
title: 'OCR File',
mimeType: 'image/png'
}; // configurem el nom i el tipus del document
// Guardem la image en un document de Google Drive amb l'opció d'OCR activada
file = Drive.Files.insert(file, imatge, {ocr: true});
// Obrim el fitxer
var doc = DocumentApp.openById(file.id);
// Llegim el text del Document
var text_igm = doc.getBody().getText();
// Un cop llegit el text, marquem el fitxer com a esborrat
DriveApp.getFileById(file.id).setTrashed(true);
return text_igm;
} catch(err){
return err;
}
}
Cal preveure la possibilitat que la funció retorni una cadena buida en cas que la imatge no tingui cap text reconeixible.
Si emprem Telegram en un dispositiu mòbil, enviarem la fotografia picant la icona del clip
i triant quina és la imatge que volem enviar. Si fem servir Telegram a l'ordinador, a més de l'opció ja comentada, podem arrossegar la imatge sobre el xat corresponent i se'ns presentaran diverses opcions

i triarem la que fa referència a fotografies.
Si li enviem la imatge següent:

Obtindrem el següent resultat:
RECOLLIR TIQUET RECOGER TIQUE PRENDRE LE TICKET TAKE A TICKET
En aquest exemple hi ha un programa complet que fa servir aquesta funció.

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