2017-03-02 6 views
8

Ich entwickle einen Telegram-Bot und möchte den Webhook auf die URL meiner Domain setzen. Ich habe bereits ein selbstsigniertes Zertifikat nach der Telegram's guide generiert. Ich kann den Webhook jedoch nicht einstellen. Ich habe vorherige Antworten gesucht und this one gefunden, aber es funktioniert nicht für mich. Kann mir jemand erklären, wie man das SSL-Zertifikat hochlädt und den Webhook setzt?Wie wird der Telegram-Bot-Webhook eingestellt?

Danke.

Antwort

13

Ich habe eine Datei auf meinem Server erstellt, um bequem Telegramm-Webhooks einzurichten.

Sie können dieselbe Datei auf Ihrem Server verwenden.

Dieser auf dem gleichen Server sein soll, von dem Sie das Telegramm Bietet

<html> 

<head> 
    <title>Set Webhooks</title> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" /> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.0/css/bulma.min.css" /> 
    <script src="https://unpkg.com/vue/dist/vue.js"></script> 
</head> 

<body> 
    <div class="container"> 
    <div id="app" class="section"> 
     <form :action="set_webhook" method="post" enctype="multipart/form-data"> 
     <label class="label">Enter your Token</label> 
     <p class="control"> 
      <input class="input" type="text" v-model="token" /> 
     </p> 
     <label class="label">Enter your Host</label> 
     <p class="control"> 
      <input class="input" type="text" v-model="host" /> 
     </p> 
     <label class="label">Enter your Port</label> 
     <p class="control"> 
      <input class="input" type="text" v-model="port" /> 
     </p> 

     <input type="hidden" name="url" v-model="bot_url"> 
     <label class="label">Maximum Connections?</label> 
     <p class="control"> 
      <input class="input" type="text" name="max_connections" value="100" /> 
     </p> 
     <br/> 
     <p style="color:blue">{{ bot_url }}</p> 
     <br/> 
     <label class="label">Enter your Certificate</label> 
     <p class="control"> 
      <input type="file" name="certificate" id="fileToUpload" /> 
     </p> 
     <br/> 
     <div class="control is-grouped"> 
      <p class="control"> 
      <button class="button is-primary" name="submit">Set Webhook</button> 
      </p> 
      <br/> 
      <p class="control"> 
      <a :href="get_webhook_info" target="_blank" class="button is-info">Get Webhook Info</a> 
      </p> 
     </div> 
    </div> 
    </div> 
    <script> 
    new Vue({ 
     el: '#app', 
     data: { 
     token: 'xxx', 
     port: 88, 
     host: 'your-server.com', 
     }, 
     computed: { 
     get_webhook_info: function() { 
      return 'https://api.telegram.org/bot' + this.token + '/getwebhookinfo' 
     }, 
     set_webhook: function() { 
      return 'https://api.telegram.org/bot' + this.token + '/setwebhook' 
     }, 
     bot_url: function() { 
      return 'https://' + this.host + ':' + this.port + '/' + this.token 
     } 
     } 
    } 

    ) 
    </script> 
</body> 

</html> 
  1. Tropfen diese Datei auf dem gleichen Server laufen Sie wünschen Ihnen Bots
  2. Sicherstellen, dass der MIME-Typ bewirten für .pem auf Ihrem Webserver
  3. Wechseln Sie zu dieser Seite auf unserem Server
  4. das Formular mit Ihren BOT_TOKEN und PORT gewählt Füllen aktiviert
  5. Laden
  6. Ihre Zertifikatsdatei
  7. Senden Sie das Formular

Sie ein erfolgreiches Ergebnis erhalten:

{"ok":true,"result":true,"description":"Webhook was set"} 

enter image description here

Verwandte Themen