我正在创建一个GroupMe机器人,我正在测试回调URL和我到目前为止设置的基本WSGI应用程序。我计划在Heroku上托管机器人,但首先在我的本地机器上进行测试。我用回调URL http://MY_IP_ADDRESS:8000注册了一个机器人。当我打开不同的shell并在Python解释器中运行requests.post('http://MY_IP_ADDRESS:8000', data = 'something')时,一切正常。但是,当GroupMe组中有活动时,什么都不会发生,甚至没有错误消息。
以下是我的(简化)代码:
from wsgiref.simple_server import make_serve
def app(environ, startResponse):
try:
requestBodySize = int(environ.get('CONTENT_LENGTH', 0))
except ValueError:
requestBodySize = 0
# requestBody = environ['wsgi.input'].read(requestBodySize)
print('something')
responseBody = bytes('successful', 'utf-8')
status = '200 OK'
responseHeaders = [('Content-Type', 'text/plain'), ('Content-Length', str(len(responseBody)))]
startResponse(status, responseHeaders)
return [responseBody]
server = make_server('', 8000, app)
server.serve_forever()我肯定我在做一些显而易见的事情,但我无法在我的一生中想出什么。我很感谢你的帮助!
发布于 2019-07-06 13:28:31
我从来不明白为什么回调URL不适用于本地主机,但是当我在Heroku上部署应用程序时,一切都很好!这肯定和我的防火墙设置有关。
发布于 2020-09-11 00:01:07
当您在本地计算机上运行服务器时,您的防火墙并不喜欢这种情况。GroupMe也不能发送任何东西,除了面向公众的收件人,这就是为什么Heroku工作。我将来可以推荐的一件事是使用Ngrok,https://ngrok.com/,它将与您的服务器一起工作,使您的计算机上的一个面向公共的地址,您可以使用回调url。我使用Ngrok测试我的机器人,并在推到像Heroku这样的专用服务器之前快速迭代,诚实地查看Heroku日志文件是一件痛苦的事情。
https://stackoverflow.com/questions/56719493
复制相似问题