使用Twitter oauth重定向时出错

时间:2018-11-16 08:16:56

标签: python flask twython

我是Flask的新手,我正在尝试使用Twython对Twitter进行oauth。以下是我的代码(开发版本):

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,但是我不明白为什么会出现错误。 请帮忙。

0 个答案:

没有答案