1

Google App Engine の Flickr OAuth に奇妙な問題があります。

添付のコードを使用して、Flickr から oauth トークンとシークレットを要求しています..App Engine でテストすると、ほとんどの場合失敗します..Flickr は次のようなページを返します

「Flickr には問題があります。現在問題を調査しています...」

最初はFlickrの問題かもしれないと思った..しかし、URLを直接chromeにコピーすると、oauthトークンとシークレットを取得できた..だから、URLを取得するコードに問題があるのではないかと思った..しかし実際には、同じコードを使用して、localhostでトークンとシークレットを取得することもできます..

今、私は本当に混乱しています..これは最近まで完全に機能していたので..問題を引き起こす可能性のある App Engine 開発サーバーの更新はありますか? 助けてください!!!

        url = "http://www.flickr.com/services/oauth/request_token"
        params = {
            "oauth_timestamp": str(int(time())),
            "oauth_signature_method": "HMAC-SHA1",
            "oauth_version": "1.0",
            "oauth_nonce": sha1(str(random())).hexdigest(),
            "oauth_callback": API_CALLBACK,
            "oauth_consumer_key": API_KEY,
        }
        # Setup the Consumer with the key-secret given by Flickr
        consumer = oauth2.Consumer(key=API_KEY, secret=API_SECRET)

        # Create request
        req = oauth2.Request(method="GET", url=url, parameters=params)

        # Create signature
        signature = oauth2.SignatureMethod_HMAC_SHA1().sign(req, consumer, None)

        # Add the Signature to the request
        req['oauth_signature'] = signature

        h = httplib2.Http()
        resp, content = h.request(req.to_url(), "GET")

更新:コードを少し変更しました。トークンを取得できない場合はリクエストを続けます(最大試行回数が許可されている場合)。それは機能します...それでも、そのような回避策を書かなければならないのは非常に面倒です。より良い代替品が利用可能である場合に感謝します!

4

1 に答える 1

0

http の代わりに https を使用する必要があります (上記のコメント スレッドを参照)。

于 2013-12-09T16:04:56.000 に答える