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