Herokuにおけるhttp://127.0.0.1:8080とは?
Python-FitbitというFitbit APIをPythonから利用するモジュールで、Heroku上のプログラムからOAuth2認証をして、アクセストークン・リフレッシュトークンを取得したい。
Python-Fitbit
https://github.com/orcasgit/python-fitbit
手順はこのサイトを参考にしました。
http://blog.mr-but-dr.xyz/programming/fitbit-python-heartrate-howto/
ローカルでhttp://127.0.0.1:8080をコールバックURLに指定しプログラムを実行すると、ブラウザが開き認証に成功するのですが、Heroku上でhttps://appname.herokuapp.com:443/をコールバックURLに指定し実行すると、認証に失敗します。
Herokuにおけるhttp://127.0.0.1:8080が何にあたるのかを教えてください。
ポート番号を8080や5000に変えてみましたが、同じエラーが発生しました。
gather_keys_oauth2.py
import cherrypy
cherrypy.config.update({'server.socket_host':'appname.herokuapp.com','server.socket_port':443})
def __init__(self, client_id, client_secret,
redirect_uri='https://appname.herokuapp.com:443'):
エラーメッセージ
raise socket.error(msg)
OSError: No socket could be created -- (('IPアドレス', 443): [Errno 49] Can't assign requested address)
エラーメッセージ2
[17/Apr/2017:14:01:15] ENGINE Error in 'start' listener <bound method Server.start of <cherrypy._cpserver.Server object at 0x7f33e57b12e8>>
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/site-packages/cherrypy/process/wspbus.py", line 215, in publish
output.append(listener(*args, **kwargs))
File "/app/.heroku/python/lib/python3.6/site-packages/cherrypy/_cpserver.py", line 168, in start
super(Server, self).start()
File "/app/.heroku/python/lib/python3.6/site-packages/cherrypy/process/servers.py", line 177, in start
portend.free(*self.bind_addr, timeout=Timeouts.free)
File "/app/.heroku/python/lib/python3.6/site-packages/portend.py", line 143, in free
raise Timeout("Port {port} not free on {host}.".format(**locals()))
portend.Timeout: Port 443 not free on appname.herokuapp.com.
[17/Apr/2017:14:01:15] ENGINE Shutting down due to error in start listener:
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/site-packages/cherrypy/process/wspbus.py", line 253, in start
self.publish('start')
File "/app/.heroku/python/lib/python3.6/site-packages/cherrypy/process/wspbus.py", line 233, in publish
raise exc
cherrypy.process.wspbus.ChannelFailures: Timeout('Port 443 not free on appname.herokuapp.com.',)