Я новичок во Flask, и я пытаюсь сделать oauth с Twitter, используя Twython.Ниже приведен мой код (версия для разработки):
OAUTH_TOKEN = ''
OAUTH_TOKEN_SECRET = ''
callback_url = 'http://127.0.0.1:5000/verify'
@app.route('/')
def hello(name=None):
return render_template('index.html', name=name)
@app.route('/auth', methods=['POST'])
@cross_origin()
def obtain_auth_url():
global OAUTH_TOKEN, OAUTH_TOKEN_SECRET
social_network = request.get_json()['social_network']
if social_network == 'facebook':
return ''
elif social_network == 'twitter':
twitter = Twython(APP_KEY, APP_SECRET)
auth = twitter.get_authentication_tokens(callback_url)
OAUTH_TOKEN = auth['oauth_token']
OAUTH_TOKEN_SECRET = auth['oauth_token_secret']
redirect_url= auth['auth_url']
response = redirect(redirect_url)
response.headers = {'Access-Control-Allow-Origin': 'https://api.twitter.com/'}
print('redirect_url: ',redirect_url)
return response
@app.route("/verify")
def get_verification():
global OAUTH_TOKEN
global OAUTH_TOKEN_SECRET
twitter = Twython(APP_KEY, APP_SECRET,OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
final_step = twitter.get_authorized_tokens(request.args['oauth_verifier'])
OAUTH_TOKEN2 = final_step['oauth_token']
OAUTH_TOKEN_SECRET2 = final_step['oauth_token_secret']
return 'OK!</br> OAUTH TOKEN:' + OAUTH_TOKEN2 +'</br> OAUTH TOKEN SECRET: '+ OAUTH_TOKEN_SECRET2
Обратите внимание, что в коде я добавляю заголовок Access-Control-Allow-Origin
, чтобы включить перенаправление на домен Twitter API.Если я не включаю заголовок, он выдает ошибку перекрестного источника.Однако в браузере (Firefox) говорится:
Ошибка синтаксического анализа XML: синтаксическая ошибка Расположение: http://127.0.0.1:5000/auth Строка № 1, столбец 55:
Ясно, что конечная точка /auth
была достигнута, потому что я могу видеть URL перенаправления через журнал, но я не понимаю, почему у меня ошибка.Пожалуйста, помогите.