2015-07-03 16 views
7

Dopo aver creato un bot di telegramma e ottenuto un token bot, voglio inviare una richiesta all'API del bot.Come dovremmo inviare una query all'API dei bot di Telegram?

This link dice che dobbiamo inviare la richiesta HTTP in questo modo: https://api.telegram.org/bot<token>/METHOD_NAME e porta ad esempio per semplice metodo del "getMe", che non ha alcun parametro di input.

Immagina di voler inviare alcuni messaggi. Dovrei usare il metodo sendMessage che ha due parametri di input richiesti: chat_ID e testo.

Ora le mie domande inizia:

  1. Come posso scrivere questo metodo sendMessage in formato richiesta di cui sopra con i suoi parametri? Ho provato sendMessage(param1,param2) e ho ricevuto il messaggio non trovato.

  2. Che cos'è chat_id? se voglio inviare un messaggio al contatto, come posso sapere il suo chat_id?

ho cercato molto su internet, ci sono un sacco di progetti su GitHub appositamente per questo scopo, e onestamente nessuno di loro ha senso. per l'amor di dio, per favore aiutatemi. Sto perdendo strada.

Saluti.

risposta

20

Basta inviare una richiesta POST a:

https://api.telegram.org/bot{token}/{method} 

Ad esempio:

https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage 

Nel corpo della richiesta, è URL codificare i parametri:

chat_id=12345&text=hello%20friend 

Per esempio, in Python utilizzando il modulo requests:

import requests 

response = requests.post(
    url='https://api.telegram.org/bot{0}/{1}'.format(token, method), 
    data={'chat_id': 12345, 'text': 'hello friend'} 
).json() 

Quando un utente chatta con il bot, si ottiene un Message object con un id di chat (e un id utente, che è possibile sostituire per un id di chat). Non c'è modo di avviare una chat con un utente a meno che tu non conosca già il loro id utente, quindi devi aspettare che un utente parli con te. È possibile semplificare utilizzando deep linking e facendo clic su un collegamento che invia un messaggio pre-impostato quando si preme il pulsante Start.

+0

grazie per la buona risposta, circa la ricezione di messaggi, come può una chiacchierata utente con il mio bot, voglio dire dovrebbero semplicemente inviare il messaggio al mio conto telegramma e posso avere il loro chat_id? –

+0

@AliCrash: l'utente trova il tuo bot per nome ('@ YourBot') o fa clic su un collegamento (' https: //telegram.me/YourBot? Start = something'), che apre una finestra di Telegram e la casella di inserimento messaggi viene sostituita con un pulsante Start gigante che invia '\ start qualcosa 'al tuo bot. – Blender

+0

aha, ora vedo come funziona un robot, grazie ancora, ma come posso ricevere e archiviare i messaggi nella mia casella di posta del mio account Telegram in un database locale? Voglio fare un'app desktop per fare una cosa del genere. –

1

Prova questo

https://api.telegram.org/bot{token}/sendMessage?chat_id=<chat_id>&text=<Enter your text here> 

Esempio

https://api.telegram.org/bot449123456:AAHSAnSGDm8PW2Z-1ZiwdVDmgv7sM3NMTxg/sendMessage?chat_id=311911234&text=Hi+Everyone 
Problemi correlati