github.GithubException.GithubException: 401 на Heroku, когда вы хотите создать репо в общедоступном репозитории пользователя - Github API
Я делаю это приложение, используя 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 это очень хорошо. Но затем героку делает эту ошибку:
Я вижу, что возникла проблема с аутентификацией. 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')
Интересно, чего мне здесь не хватает. Спасибо за вашу помощь
1 ответ
Я мог разобраться в проблеме. По какой-то причине определение глобальной переменной для полученияtheToken
и использовать его позже не помогло. Я просто переместил линию80
ровняться 179
и теперь он работает очень хорошо! ах, и с небольшой поправкой:theToken = session.get('github_token')[0]
, потому что функция get возвращает кортеж длиной 2, для которого первое значение является токеном доступа, а второе - секретным ключом.
Надеюсь, этот вопрос и ответ могут помочь кому-то в будущем!