2014-03-03 62 views
1

我想运行一个简单的应用程序使用twitter API包装称为tweepy(与Python),我不能通过验证步骤。tweepy验证程序运行时错误

我的代码非常简单。

from flask import Flask 
from flask import request 
import flask 
import tweepy 

session=dict() 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 

try: 
    redirect_url = auth.get_authorization_url() 
    session['request_token']=(auth.request_token.key, auth.request_token.secret) 
except tweepy.TweepError: 
    print 'Error! Failed to get request token.' 

verifier = request.GET.get('oauth_verifier') 

它确实是由tweepy文档提供的代码,但由于某些原因,它会一直返回运行时错误。

Runtime Error: working outside of request context 

有人吗?

回答

0

执行脚本显示错误发生在verifier = request.GET.get('oauth_verifier')上,并且用错误信息搜索显示此错误与Flask有关。

所以我猜Flask只是不喜欢在Flask调用的函数外面使用request.GET.get(这可能就是他们所说的“请求上下文”)。 基本上,你应该只执行最后一行,它显示数据是有意义的(一个web服务器只能显示数据,如果有一个web浏览器等待响应...)

+0

我觉得我不太了解验证者工作。在tweepy的文档中,它说:“如果这是一个桌面应用程序(或任何不使用回调的应用程序),我们必须向用户查询在他们授权我们之后Twitter将提供给他们的”验证代码“。回调(web应用程序)verifier = request.GET.get('oauth_verifier')“为了明确我的目的,我的应用程序除了从twitter获取数据外没有任何其他意图,那么我应该如何使用验证器呢?上面的行不如前面提供的更好。 – Barnabe

+0

如果您使用Flask,这意味着您不是在编写桌面应用程序,而是在编写Web应用程序 –