python telegram bot," socket.error:[Errno 98]地址已被使用"

时间:2017-08-25 07:26:44

标签: nginx port webhooks python-telegram-bot telegram-webhook

我正在使用this api开发一个电报机器人,我尝试使用其webhook示例使用webhook方法设置我自己的机器人。 我有一个Ubuntu服务器,我已经在它上面设置了nginx。

现在当我试图运行我的python bot时,我收到了这个错误:

Traceback (most recent call last):
  File "bot.py", line 106, in <module>
    router.run(host=WEBHOOK_LISTEN, port=int(WEBHOOK_PORT), ssl_context= (WEBHOOK_SSL_CERT, WEBHOOK_PRIV_CERT), debug=True)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 841, in run
    run_simple(host, port, self, **options)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 720, in run_simple
    s.bind((hostname, port))
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use

所以我检查了什么是使用我的端口443,过程是nginx:

root     30734     1  0 Aug21 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

我无法关闭nginx,因为我的网站就在上面,我需要端口设置电报机器人。

编辑:我将把我的代码放在这里以获得更多说明:

WEBHOOK_HOST = 'mywebsite.com'
WEBHOOK_PORT = '8443'
WEBHOOK_LISTEN = '0.0.0.0'

WEBHOOK_SSL_CERT = "/etc/letsencrypt/live/mywebsite.com/cert.pem"
WEBHOOK_PRIV_CERT = "/etc/letsencrypt/live/mywebsite.com/privkey.pem"

WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT)
WEBHOOK_URL_PATH = "/%s/" % (TOKEN.get_token())

router = flask.Flask(__name__)

@router.route('/', methods=['GET', 'HEAD'])
def index():
    return 'OK'

@router.route(WEBHOOK_URL_PATH, methods=['POST'])
def webhook():
    if flask.request.headers.get('content-type') == 'application/json':
    json_string = flask.request.json
    print json_string["message"]["text"] # here I get the text of message
    return ''
else:
    flask.abort(403)


bot.remove_webhook()
time.sleep(3)

bot.set_webhook(url=WEBHOOK_URL_BASE+WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r'))

router.run(host=WEBHOOK_LISTEN, port=int(WEBHOOK_PORT), ssl_context=(WEBHOOK_SSL_CERT, WEBHOOK_PRIV_CERT), debug=True)

0 个答案:

没有答案