2017-03-02 114 views
8

我正在開發一個Telegram機器人,並且我想將webhook設置爲我的域的url。我已經在Telegram's guide之後生成了自簽名證書。但是,我無法設置webhook。我查了以前的答案,發現this one,但它對我不起作用。任何人都可以解釋我如何上傳ssl證書並設置webhook?如何設置Telegram bot webhook?

謝謝。

回答

13

我在我的服務器上創建了一個文件,用於方便地設置電報webhooks。

你可以在你的服務器上使用同一個文件。

這應該是從你想運行的電報博特

<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. 跌落在同一臺服務器上的這個文件要舉辦你的機器人
  2. 確保MIME類型在同一臺服務器上爲.pem您的網絡服務器
  3. 瀏覽啓用此頁我們的服務器上
  4. 填寫表格,包括您BOT_TOKEN和選擇的端口
  5. 上傳您的證書文件
  6. 提交表單

你會得到一個圓滿的結果:

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

enter image description here