* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 16, 2024, 05:14:57 pm

Inserisci il nome utente, la password e la durata della sessione.

63 Visitatori, 0 Utenti

Autore Topic: Telegram Bot  (Letto 6961 volte)

clayrm

  • Newbie
  • *
  • Post: 5
  • Karma: +0/-0
Telegram Bot
« il: Dicembre 01, 2017, 04:22:53 pm »
Ciao a tutti.
Per python esiste un'ottima libreria da usare per gestire un bot Telegram, si chiama Telepot.
Sapete se esiste qualcosa del genere anche per Lazarus?
Ho fatto molte ricerche con google ma ne ho trovata soltanto una, tra l'altro molto complicata da usare (mstrVLT).
Grazie a chiunque possa aiutarmi.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Telegram Bot
« Risposta #1 il: Dicembre 01, 2017, 04:29:35 pm »
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Telegram Bot
« Risposta #2 il: Dicembre 01, 2017, 04:33:25 pm »
Ciao clayrm, se posso chiederti che funzionalità pensi di implementare?
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Telegram Bot
« Risposta #3 il: Dicembre 01, 2017, 04:47:18 pm »
Non mi risulta chiaro cosa ti è ostico in quella libreria.
Quella che hai menzionata non si capisce se è portata avanti o meno.
Cmq.
"Cation! Library is forked to https://github.com/Al-Muhandis/fp-telegram This project is in development. If you want to join us write in telegram @mstrVLT. It is still unfinished library, but You can use it in your own working projects"


Dello stesso autore:
https://github.com/Al-Muhandis/brook-telegram

 
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

clayrm

  • Newbie
  • *
  • Post: 5
  • Karma: +0/-0
Re:Telegram Bot
« Risposta #4 il: Dicembre 01, 2017, 04:56:50 pm »
Si queste sono quelle che avevo trovato anche io. Per le mie competenze le trovo un po complicate. In python bastava creare l'oggeto e con una chiamata a oggetto.message partiva un thread che ti mandava le risposte dal server. Davvero due righe di programma. Comunque cercherò di approfondire queste consigliate.
In pratica sto utilizzando Lazarus su raspberry, e vorrei fare una unit che gestisca l'invio e ricezione di comandi via Telegram. Spero di essere stato chiaro.
Grazie comunque a tutti.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Telegram Bot
« Risposta #5 il: Dicembre 01, 2017, 05:00:18 pm »
:)
Codice: [Seleziona]

  { TMyAction }

  TMyAction = class(TWebhookAction)
  public
    constructor Create(ARequest: TBrookRequest; AResponse: TBrookResponse); overload;
      override;
    procedure Post; override;
  end;


Stando alla descrizione della libreria devi modificare qui dentro le configurazioni per poter puntare al tuo bot.

Codice: [Seleziona]

constructor TMyAction.Create(ARequest: TBrookRequest; AResponse: TBrookResponse
  );
begin
  inherited Create(ARequest, AResponse);
  { This isnt real telegram token! Please get token from
  https://core.telegram.org/bots#botfather }
  Token:='123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11';
  StartText:='Hi! It is simplest HelloBot based on brookframeork and TGBotLazarus!';
  HelpText:='This help text for the bot...';
  { Please enter XXXXXX - [your ]user ID (integer value) for availabality of
  admin commands (/stat, /statf /terminate)}
  UserPermissions.Add('XXXXXX=a');
  { You can do not create this log. If its value is nil,
  then the logging just will not be maintained }
  StatLogger.Paused:=False; // run statistics log
  Logger:=BLogger;
end;



Per il resto è un'applicazione basata su Brook.
;) NoMore ... qui sei più bravo tu
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

clayrm

  • Newbie
  • *
  • Post: 5
  • Karma: +0/-0
Re:Telegram Bot
« Risposta #6 il: Dicembre 01, 2017, 05:17:04 pm »
Si stavo giusto vedendo.
Grazie ancora Stilgard.
Ma quale bravo... semplice autodidatta.
Buon fine settimana!

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Telegram Bot
« Risposta #7 il: Dicembre 01, 2017, 05:19:06 pm »
:) Nomore -> nomorelogic
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:Telegram Bot
« Risposta #8 il: Giugno 08, 2018, 04:14:09 pm »
Ciao a tutti,
ho scaricato i sorgenti da qui: https://github.com/Al-Muhandis/fp-telegram

Ho provato a fare girare il progetto di esempio "getMe", impostando il token di un bot creato da me, e funziona.
Il problema è che non ho capito come si usa ....

La mia esigenza è, almeno spero, abbastanza semplice: dovrei solo mandare un messaggio su quel bot creato da me, non mi interessa ricevere e/o gestire risposte.
E' da ieri sera che ci sto provando, ma non ci sono ancora riuscito.

Qualcuno mi sa dare una dritta o un programmino di esempio?

P.S. Non ho provato a scaricare l'altro, quello del framework Brook, perché vorrei fare il tutto usando meno componenti possibile.


Questo è quello che ho provato io:
Codice: [Seleziona]
  WrkBot:=TTelegramSender.Create(CstTokenNewsGandiniLodiBot);
  try
    WrkBot.sendMessage('Prova');
  finally
    FreeAndNil(WrkBot);
  end;

Il risultato è questo errore:
Codice: [Seleziona]
{"ok":false,"error_code":400,"description":"Bad Request: chat not found"}

Grazie in anticipo, Mario

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:Telegram Bot
« Risposta #9 il: Giugno 08, 2018, 07:45:01 pm »
CAsomai servisse ad altri in futuro, ci sono riuscito così:

Codice: [Seleziona]
function  InviaMsgBot(TestoMessaggio:String):Boolean;
var WrkBot: TTelegramSender;
begin
  Result:=False;

  WrkBot:=TTelegramSender.Create(CstTokenNewsGandiniLodiBot);
  try
    if WrkBot.getMe then begin
      WrkBot.getUpdates();
      if WrkBot.sendMessage(WrkBot.CurrentChatId, '/start') then begin
        if WrkBot.sendMessage(WrkBot.CurrentChatId, TestoMessaggio) then begin
          Result:=True;
        end;
      end;
    end;
  finally
    bmt_LastErrorDescription:=WrkBot.LastErrorDescription;
    bmt_LasterrorCode:=WrkBot.LastErrorCode;

    FreeAndNil(WrkBot);
  end;
end;

Devo però capire perché, delle 3 persone che usano il bot, solo 2 ricevono i messaggi che invio ...

Ciao, Mario

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:Telegram Bot
« Risposta #10 il: Luglio 05, 2018, 11:34:43 am »
Come non detto ... la cosa a volte funziona ed a volte no, ma non ne ho ancora capito il motivo.
La discussione prosegue anche sul forum inglese, a questo indirizzo: http://forum.lazarus.freepascal.org/index.php/topic,38959.msg290055.html#msg290055

Ciao, Mario

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18769
  • Topic in totale: 2232
  • Online Today: 80
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 63
Total: 63

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.