在我的Python脚本中使用Flask进行Spotify授权时找不到
我正在尝试上载Python脚本,以授权用户使用Spotify iOS SDK。老实说,我不知道我在做什么,但文件真的很差。我使用Heroku作为web服务器,但是当我使用在我的Python脚本中使用Flask进行Spotify授权时找不到,python,heroku,oauth,flask,spotify,Python,Heroku,Oauth,Flask,Spotify,我正在尝试上载Python脚本,以授权用户使用Spotify iOS SDK。老实说,我不知道我在做什么,但文件真的很差。我使用Heroku作为web服务器,但是当我使用foreman start时,我只在localhost:5000上得到这个: Not Found The requested URL was not found on the server. If you entered the URL manually please check your spelling and try ag
foreman start
时,我只在localhost:5000上得到这个:
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
spotify_token_swap.py如下所示:
import cherrypy
from cherrypy import tools
import simplejson as json
import requests
import os
from flask import Flask
app = Flask(__name__)
# CHANGE these values to your own
k_client_id = "spotify-ios-sdk-beta"
k_client_secret = "ba95c775e4b39b8d60b27bcfced57ba473c10046"
k_client_callback_url = "spotify-ios-sdk-beta://callback"
verbose = True
class SpotifyTokenSwap(object):
@cherrypy.expose
@tools.json_out()
def swap(self, code=None):
params = {
'grant_type': 'authorization_code',
'client_id': k_client_id,
'client_secret': k_client_secret,
'redirect_uri': k_client_callback_url,
'code' : code
}
r = requests.post('https://ws.spotify.com/oauth/token', params)
cherrypy.response.status = r.status_code
if verbose:
print
print code
print r.status_code
print r.text
print
return r.json()
def CORS():
cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"
if __name__ == '__main__':
cherrypy.tools.CORS = cherrypy.Tool('before_handler', CORS)
root = SpotifyTokenSwap()
config = {
'global' : {
'server.socket_host' : '0.0.0.0',
'server.socket_port' : 5000,
'server.thread_pool' : 10,
# 'environment' : 'production',
},
'/' : {
'tools.CORS.on' : True,
}
}
cherrypy.quickstart(root, '/', config=config)
我在Procfile中使用以下命令启动foreman Web服务器:
web: gunicorn spotify_token_swap:app
我很确定您指向了错误的wsgi应用程序。从Procfile指向app意味着flask正在为页面提供服务。您使用cherrypy注册并构建了所有内容,并且没有在flask中包含任何路由。因此应用程序对象没有路由,即没有“/”。所以你需要改用cherrypy应用程序 因为您要删除flask应用程序部分,所以应该删除
if uuuu name uuuu=='\uuuu main uuu':
行,并将其余部分更改为
config = {
'global' : {
'server.socket_host' : '0.0.0.0',
'server.socket_port' : 5000,
'server.thread_pool' : 10,
# 'environment' : 'production',
},
'/' : {
'tools.CORS.on' : True,
}
}
wsgiapp = cherrypy.Application(SpotifyTokenSwap(), '/', config=config)
然后在proc文件中使用它
web: gunicorn spotify_token_swap:wsgiapp
我不习惯Foreman或cherrypy,但我认为这是您需要做的。我很确定您指向了错误的wsgi应用程序。从Procfile指向app意味着flask正在为页面提供服务。您使用cherrypy注册并构建了所有内容,并且没有在flask中包含任何路由。因此应用程序对象没有路由,即没有“/”。所以你需要改用cherrypy应用程序 因为您要删除flask应用程序部分,所以应该删除
if uuuu name uuuu=='\uuuu main uuu':
行,并将其余部分更改为
config = {
'global' : {
'server.socket_host' : '0.0.0.0',
'server.socket_port' : 5000,
'server.thread_pool' : 10,
# 'environment' : 'production',
},
'/' : {
'tools.CORS.on' : True,
}
}
wsgiapp = cherrypy.Application(SpotifyTokenSwap(), '/', config=config)
然后在proc文件中使用它
web: gunicorn spotify_token_swap:wsgiapp
我不习惯Foreman或cherrypy,但我认为这是您需要做的。我很确定您指向了错误的wsgi应用程序。从Procfile指向app意味着flask正在为页面提供服务。您使用cherrypy注册并构建了所有内容,并且没有在flask中包含任何路由。因此应用程序对象没有路由,即没有“/”。所以你需要改用cherrypy应用程序 因为您要删除flask应用程序部分,所以应该删除
if uuuu name uuuu=='\uuuu main uuu':
行,并将其余部分更改为
config = {
'global' : {
'server.socket_host' : '0.0.0.0',
'server.socket_port' : 5000,
'server.thread_pool' : 10,
# 'environment' : 'production',
},
'/' : {
'tools.CORS.on' : True,
}
}
wsgiapp = cherrypy.Application(SpotifyTokenSwap(), '/', config=config)
然后在proc文件中使用它
web: gunicorn spotify_token_swap:wsgiapp
我不习惯Foreman或cherrypy,但我认为这是您需要做的。我很确定您指向了错误的wsgi应用程序。从Procfile指向app意味着flask正在为页面提供服务。您使用cherrypy注册并构建了所有内容,并且没有在flask中包含任何路由。因此应用程序对象没有路由,即没有“/”。所以你需要改用cherrypy应用程序 因为您要删除flask应用程序部分,所以应该删除
if uuuu name uuuu=='\uuuu main uuu':
行,并将其余部分更改为
config = {
'global' : {
'server.socket_host' : '0.0.0.0',
'server.socket_port' : 5000,
'server.thread_pool' : 10,
# 'environment' : 'production',
},
'/' : {
'tools.CORS.on' : True,
}
}
wsgiapp = cherrypy.Application(SpotifyTokenSwap(), '/', config=config)
然后在proc文件中使用它
web: gunicorn spotify_token_swap:wsgiapp
我不习惯Foreman或cherrypy,但我认为这是您需要做的。您可以使用此python服务:
在我得到这个解决方案之前,我已经在Python和Ruby的丛林中呆了几个小时,干杯 您可以改用此python服务:
在我得到这个解决方案之前,我已经在Python和Ruby的丛林中呆了几个小时,干杯 您可以改用此python服务:
在我得到这个解决方案之前,我已经在Python和Ruby的丛林中呆了几个小时,干杯 您可以改用此python服务:
在我得到这个解决方案之前,我已经在Python和Ruby的丛林中呆了几个小时,干杯 我很不明白你想做什么。你不应该发布密钥,你的回调看起来。。。错。你不应该把樱桃和烧瓶混在一起。我的意思是你可以,但是你为什么要这么做呢?如果我删除了Flask代码,那么我如何从Procfile启动服务呢?我只是在第页上找不到。我很困惑你们想做什么。你不应该发布密钥,你的回调看起来。。。错。你不应该把樱桃和烧瓶混在一起。我的意思是你可以,但是你为什么要这么做呢?如果我删除了Flask代码,那么我如何从Procfile启动服务呢?我只是在第页上找不到。我很困惑你们想做什么。您不应该发布密钥和回拨密码