Ошибка при перенаправлении с помощью Twitter oauth - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок во 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 перенаправления через журнал, но я не понимаю, почему у меня ошибка.Пожалуйста, помогите.

...