【问题标题】:How do I get fibit python working when hosted on heroku?托管在heroku上时如何让fibit python工作?
【发布时间】:2021-01-31 21:04:17
【问题描述】:

我已经提取了这个 repo 并让它在我的本地机器上运行:https://github.com/orcasgit/python-fitbit

当文件运行时,它会打开一个 URL 并让用户使用 OAuth2 登录 Fitbit,然后您就可以访问他们的 Fitbit 数据。

我的问题是我想在 Heroku 上托管它,但它不起作用。

在这个文件中它指定了本地 URL "http://127.0.0.1:8080/":https://github.com/orcasgit/python-fitbit/blob/master/gather_keys_oauth2.py

如何让它在 Heroku 上运行?

我已尝试将 url 换成我的 Heroku url,例如“https://example.herokuapp.com/”但我收到以下错误:

2020-10-17T15:49:32.221290+00:00 app[web.1]: 10.10.88.48 - - [17/Oct/2020:15:49:32 +0000] "GET / HTTP/1.1" 200 104 "https://dashboard.heroku.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"
2020-10-17T15:49:38.210539+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Listening for SIGTERM.
2020-10-17T15:49:38.210921+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Listening for SIGHUP.
2020-10-17T15:49:38.211207+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Listening for SIGUSR1.
2020-10-17T15:49:38.211435+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Bus STARTING
2020-10-17T15:49:38.211812+00:00 app[web.1]: CherryPy Checker:
2020-10-17T15:49:38.211813+00:00 app[web.1]: The Application mounted at '' has an empty config.
2020-10-17T15:49:38.211814+00:00 app[web.1]: 
2020-10-17T15:49:38.212297+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Started monitor thread '_TimeoutMonitor'.
2020-10-17T15:49:38.212774+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Started monitor thread 'Autoreloader'.
2020-10-17T15:49:38.221990+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Error in 'start' listener <bound method Server.start of <cherrypy._cpserver.Server object at 0x7fe916ef6990>>
2020-10-17T15:49:38.221992+00:00 app[web.1]: Traceback (most recent call last):
2020-10-17T15:49:38.221993+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/process/wspbus.py", line 205, in publish
2020-10-17T15:49:38.221993+00:00 app[web.1]:     output.append(listener(*args, **kwargs))
2020-10-17T15:49:38.221994+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/_cpserver.py", line 168, in start
2020-10-17T15:49:38.221995+00:00 app[web.1]:     ServerAdapter.start(self)
2020-10-17T15:49:38.221995+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/process/servers.py", line 170, in start
2020-10-17T15:49:38.221995+00:00 app[web.1]:     wait_for_free_port(*self.bind_addr)
2020-10-17T15:49:38.221996+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/process/servers.py", line 432, in wait_for_free_port
2020-10-17T15:49:38.221997+00:00 app[web.1]:     check_port(host, port, timeout=timeout)
2020-10-17T15:49:38.221997+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/process/servers.py", line 381, in check_port
2020-10-17T15:49:38.221997+00:00 app[web.1]:     port = int(port)
2020-10-17T15:49:38.221998+00:00 app[web.1]: TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
2020-10-17T15:49:38.221999+00:00 app[web.1]: 
2020-10-17T15:49:38.222259+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Shutting down due to error in start listener:
2020-10-17T15:49:38.222259+00:00 app[web.1]: Traceback (most recent call last):
2020-10-17T15:49:38.222260+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/process/wspbus.py", line 243, in start
2020-10-17T15:49:38.222260+00:00 app[web.1]:     self.publish('start')
2020-10-17T15:49:38.222261+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/cherrypy/process/wspbus.py", line 223, in publish
2020-10-17T15:49:38.222261+00:00 app[web.1]:     raise exc
2020-10-17T15:49:38.222261+00:00 app[web.1]: cherrypy.process.wspbus.ChannelFailures: TypeError("int() argument must be a string, a bytes-like object or a number, not 'NoneType'")
2020-10-17T15:49:38.222262+00:00 app[web.1]: 
2020-10-17T15:49:38.222405+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Bus STOPPING
2020-10-17T15:49:38.222606+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('example.herokuapp.com', None)) already shut down
2020-10-17T15:49:38.222768+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Stopped thread '_TimeoutMonitor'.
2020-10-17T15:49:38.222936+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Stopped thread 'Autoreloader'.
2020-10-17T15:49:38.223124+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Bus STOPPED
2020-10-17T15:49:38.223314+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Bus EXITING
2020-10-17T15:49:38.223462+00:00 app[web.1]: [17/Oct/2020:15:49:38] ENGINE Bus EXITED
2020-10-17T15:49:38.241123+00:00 app[web.1]: [2020-10-17 15:49:38 +0000] [48] [INFO] Booting worker with pid: 48

【问题讨论】:

    标签: python python-3.x heroku oauth-2.0 cherrypy


    【解决方案1】:

    看起来它从redirect_uri 提取端口,即http://127.0.0.1:8080/
    您可以尝试使用端口 443 的 Heroku url https://example.herokuapp.com:443

    【讨论】:

    • 感谢您的建议!当我在我的笔记本电脑上时,我会尽快尝试
    猜你喜欢
    • 2013-09-15
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    相关资源
    最近更新 更多