4

Tweepy と Flask をいじってみましたが、リクエスト トークンを取得しているようです。

これは失敗するコードです。

CONSUMER_TOKEN='fill this out'
CONSUMER_SECRET='and this'
CALLBACK_URL = 'http://localhost:5000/verify'
session = dict()
db = dict() #you can save these values to a database

@app.route("/")
def send_token():
    auth = tweepy.OAuthHandler(CONSUMER_TOKEN, 
        CONSUMER_SECRET, 
        CALLBACK_URL)

    try: 
        #get the request tokens
        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'

    #this is twitter's url for authentication
    return flask.redirect(redirect_url) 

このgithub プロジェクトからのものです。もちろん、消費者のトークン/シークレットを置き換えました。

auth.get_authorization_url() が失敗するのはなぜですか?

ありがとうございました。

完全なログはこれです

 * Running on http://127.0.0.1:5000/
Error! Failed to get request token
127.0.0.1 - - [20/Nov/2012 22:54:28] "GET / HTTP/1.1" 500 -
127.0.0.1 - - [20/Nov/2012 22:54:29] "GET /favicon.ico HTTP/1.1" 404 -
4

1 に答える 1

3

Tweepy はデフォルトhttp://で oauth エンドポイントにプロトコルを使用しているようです。を強制的に使用するには、コードを変更する必要がありますhttps://。これで問題が解決する場合があります。

OAuthHandler次のようにクラスをインスタンス化するときにそれを行います。

auth = tweepy.OAuthHandler(CONSUMER_TOKEN, 
    CONSUMER_SECRET, 
    CALLBACK_URL, secure=True)
于 2012-11-20T19:21:19.207 に答える