首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telegram web钩子似乎不适用于python APIs。

问Telegram web钩子似乎不适用于python APIs。
EN

Stack Overflow用户
提问于 2017-08-25 16:34:43
回答 1查看 893关注 0票数 0

我在这个API的帮助下开发了一个电报机器人,我试着用web钩子方法实现它,首先我用getUpdated方法尝试了我的机器人,它工作起来很有魅力,但是当我将它更新为web钩子时,它似乎不起作用。

我使用烧瓶实现了web钩子,完全遵循这个例子,除了ssl证书和IP,因为我有一个https域,所以我没有使用IP和自签名证书,而是使用了域。

然后我用邮递员测试了我的网络钩子,并用我从api.telegram.org获得的数据发送请求,它也同样有效,但是当我在电报应用程序中向我的机器人发送消息时,我在服务器上没有收到消息,就好像电报不像它应该发送的那样发送消息。

编辑:这里我把我的代码做了更多的澄清。

代码语言:javascript
复制
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 should 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)
EN

回答 1

Stack Overflow用户

发布于 2017-09-12 06:12:11

我认为你应该使用域名或真正的IP地址。

您的示例链接中有一点评论:

在某些VPS中,您可能需要在这里放置IP addr。

如果您在本地主机上进行开发,您可以使用一些类似于ngrok.io的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45885895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档