我对 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")
更新:我稍微更改了代码,如果我没有得到令牌,请继续请求(允许最大尝试)。它工作......仍然,我不得不写这样的解决方法非常烦人。如果有更好的替代品将不胜感激!