Django (spotipy)方法永远不会完成,因为它最终位于oauth重定向url';s观点

Django (spotipy)方法永远不会完成,因为它最终位于oauth重定向url';s观点,django,oauth,spotipy,Django,Oauth,Spotipy,我正在尝试使用spotipy执行来自Spotify的搜索请求。我在bash_配置文件中指定了客户机id、secret id和重定向url(),如API中所述 def search(username, query): token = util.prompt_for_user_token(username, scope) #like oauth with redirect url print("received token response") if token:

我正在尝试使用spotipy执行来自Spotify的搜索请求。我在bash_配置文件中指定了客户机id、secret id和重定向url(),如API中所述

def search(username, query):

    token = util.prompt_for_user_token(username, scope) #like oauth with redirect url
    print("received token response")

    if token:
        sp = spotipy.Spotify(auth=token)
        return sp.search(query, 1, 0, type='track')
问题是我正在使用django,这也迫使我在我的url.py中指定重定向url,并在views.py中指定相应的视图

    [from urls.py...]
    url(r'^callback/q$', views.callback, name='callback'),

    [from views.py...]
    def callback(request):
        print("callback view reached")
        return render(request, 'rec/search.html')

看起来django然后截取并显示来自重定向url的视图,所以我的搜索方法永远不会执行完。我对如何获取需要重定向url的令牌感到有点困惑,但随后继续执行授权请求后的其余方法我不确定这是否有帮助,但我放弃了通过util.prompt\u for_user\u令牌进行身份验证,转而使用。它是在瓶子中实现的,但应该相对容易翻译成django和您的特定需求。我也希望这样做。

这没有多大意义。你的bash_档案与任何事情有什么关系?为什么要在web应用程序中提示令牌?Spotipy api就是这样工作的。使用util方法获取令牌,创建spotify对象并对其调用方法。对于bash概要文件——您可以选择导出变量(就像我所做的那样),或者将它们作为参数传递给auth方法,以便在“用户提示”中更加具体。它确实在spotify上打开了一个页面,用户必须同意授予某些特权。我相信这是第一次仅授权,而不是刷新tokens@tara你有没有想过?我自己也面临类似的问题谢谢!我会看看我能用这个做些什么,如果我发现有什么额外的有用的话,我会在这里加上。虽然我仍然很好奇我做错了什么,因为auth和redirect似乎是一种常见的模式。我很幸运地将auth令牌拆分成了一个单独的方法,但仍然没有达到100%的工作效率