我正在使用python,Flask_OAuthlib和heroku制作此应用,以访问用户Github的公共存储库,并创建存储库并在此处复制所需文件。该应用程序已连接,并作为OAuth授权应用程序获得以下权限。
然后我有这段代码来在用户的Github的公共存储库空间中创建一个存储库,并在其中复制一些文件
177 @app.route('/replicate', methods=['GET', 'POST'])
178 def replicate():
179
170 g = Github(theToken)
181 repo_name = request.form['repo']
182 user = g.get_user()
183 repo = user.create_repo(repo_name)
当用户按下一个按钮且仅当登录后该按钮才可访问,并且该应用显示其Github中的用户名和个人资料图片时,会触发此代码。因此,与Github的会议非常顺利。但是,heroku会导致此错误:
我可以看到认证存在问题。 theToken
是用这种方式捕获的。首先,我在代码顶部创建了一个theToken=None
,然后在/login
部分中捕获了该代码,如下所示:
78 @github.tokengetter
79 def get_github_oauth_token():
80 theToken = session.get('github_token')
81 return session.get('github_token')
我想知道我在这里想念的是什么。谢谢您的帮助
答案 0 :(得分:0)
我可以找出问题所在。由于某种原因,定义全局变量以获取multiprocessing
并在以后使用它不起作用。我只是将第theToken
行移到了80
行,它现在工作得很好!
哦,并作如下小修正:
179
,因为get函数返回一个长度为2的元组,其第一个值为访问令牌,第二个为密钥。
希望这个问题和答案将来会对某人有所帮助!