2016-07-20 29 views
0

Ich habe diese Schritte zu setWebhook für mein Telegramm bietet:Wie kann ich die Telegramm-Nachrichten sendet an die URL herauszufinden, dass ich als Webhook gesetzt

I CER-Datei von meiner https-URL (https://mywebapp.com/index./index.jsp) und dann bekomme ich .jks Datei in dieser Reihenfolge erzeugen (ging ich in jre/bin-Ordner in cmd):

keytool -importcert -datei mywebapp.cer -keystore myKeystore.jks -alias mywebapp.com

Dann Ich konvertiere es in .p12 Datei:

keytool -importkeystore -srckeystore myKeystore.jks -destkeystore myPkcs.p12 -srcstoretype jks -deststoretype pkcs12

Und dann wandle ich P12-Datei Datei, die von OpenSSL .PEM:

openssl pkcs12 -in myPkcs.p12 -out myPem.pem

Dann generiere ich dieses Formular setzen Webhook:

<form id="telegramForm" action="https://api.telegram.org/botTOKEN/setWebhook" method="POST" enctype="multipart/form-data"> 
      <input type="text" name="url" id="url" value="https://mywebapp.com/index.jsp"> 
      <input type="file" name='certificate' id='certificate'> 
      <input type="submit" value="submit"> 
     </form> 

und ich durchsuchen myPem.pem Datei von Eingang [Typ = Datei]. Ich lege dieses Formular aus und ich diese Antwort:

{ "ok": true, "Ergebnis": true, "description": "Webhook gesetzt wurde"}

Aber wenn ich (oder ein Benutzertelegramm) sende einige Nachrichten (wie Textnachricht "Hallo") an meinen Roboter per Telegrammanwendung, https://mywebapp.com/index.jsp (URL, die als Webhook gesetzt wurde) erhält keine Anfrage.

Wie kann ich herausfinden, dass ein Telegramm Nachrichten an die URL sendet, die ich als Webhook eingestellt habe? Wie kann ich herausfinden, dass diese URL (https://mywebapp.com/index.jsp) Nachrichten empfangen kann, die von Telegrammbenutzern an mein Telegramm gesendet werden? Warum kann ich keine Nachrichten erhalten, die Telegrammbenutzer an meinen Bot senden? Wie kann ich sie bekommen? danke.

Antwort

0

Es ist besser, Ihre Web-Haken, so etwas zu setzen: https://mywebapp.com/index.php

index.php ist Ihr Bot Prozessor-Datei.

Ort dieser Code für den Test in Ihrer index.php Datei:

<?php 

define('BOT_TOKEN','1234:xyz'); //replace second parameter with your bot token 
$command_prefix_url = 'https://api.telegram.org/bot' . BOT_TOKEN; 
$update = json_decode(file_get_contents('php://input')); 

$rep = json_decode(file_get_contents($command_prefix_url . '/SendMessage?chat_id=' . 
    $update->message->chat->id . '&text='.urlencode($update->message->text))); 
?> 

jetzt jedes Mal, wenn jemand Sie einen Text senden, wird es, dass der Text von Bot erhalten.

Wenn Sie wissen wollen, gibt es jemand etwas zu Ihrem Bot gesendet, können Sie diese $update zur Datenbank speichern oder zu Ihrem (admin) Client erneut senden !! (viele Nachrichten)

+0

I https gesetzt: //mywebapp.com/index.jsp als Webhook. Ich schreibe, dass, wenn https://mywebapp.com/index.jsp eine Anfrage bekommt, schreibe Anfrage Parameter in eine Protokolldatei (https://mywebapp.com/log.txt).Aber wenn ich Nachricht an Roboter, nichts senden in Protokolldatei geschrieben. Warum? Sind meine Schritte um den Webhook falsch [email protected] Tock –

+0

@AtefehRashidi Wie hast du diesen Job? Was waren deine Schritte? Funktioniert mein Code? (Erhalten Sie etwas, wenn Sie per Tele- gramm-Client (App) einen Text an Ihren Bot senden)? –

+0

Ich kann Ihren Code nicht testen, da mein serverseitiger Code von jsp und java stammt. Sind meine Schritte zum Erzeugen eines selbstsignierten Zertifikats (wie im Telegrammdokument angegeben) und zum Festlegen des Webhooks wahr? Es ist nicht wichtig, dass es durch php oder jsp ist. Ich möchte nur wissen, warum mein Webhook keine Anfrage von Telegramm-Bot bekommt? Danke. @ Tick Tock –