2014-03-03 60 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應用程序 –