我开发了将照片备份到flickr的Android应用程序。
我多次遇到下一个问题: 有时我会在交换访问令牌的请求令牌期间收到401响应("响应代码:401,响应消息:未授权,错误:oauth_problem = token_rejected")而不是使用访问令牌的响应。
这个问题主要发生在我的网络连接不良时(当我起诉3G网络时)。
以下是显示此行为的日志:
2015-01-07 17:12:00,603 DEBUG [oauth.OAuthInterface]-[122] Getting Request Token with parameters: www.flickr.com/services/oauth/request_token [
Parameter [name=oauth_callback, value={MY_APP_NAME}-flickr://callback],
Parameter [name=oauth_consumer_key, value={MY_CONSUMER_KEY}],
Parameter [name=oauth_nonce, value=154099562370628],
Parameter [name=oauth_signature_method, value=HMAC-SHA1],
Parameter [name=oauth_timestamp, value=1420630920],
Parameter [name=oauth_version, value=1.0],
Parameter [name=oauth_signature, value=oVkmG/7nOoiO0P6Dm2j4Aql4lDs=]
]
2015-01-07 17:12:01,695 DEBUG [oauth.OAuthInterface]-[136]
Response: {oauth_token_secret={RESULT_OAUTH_TOKEN_SECRET}, oauth_callback_confirmed=true, oauth_token={RESULT_OAUTH_TOKEN}}
之后我在浏览器中为用户打开下一个url: url = m.flickr.com/services/oauth/authorize?oauth_token= {RESULT_OAUTH_TOKEN}& perms = write
授权后,我会收到下一个回调:
{MY_APP_NAME}-flickr://callback?oauth_token={RESULT_OAUTH_TOKEN}&oauth_verifier=59bbeb1cb3ffedca
使用验证者我发出下一个请求:
2015-01-07 17:12:47,043 DEBUG [flickrjandroid.REST]-[288] Send Post Input parameters [
Parameter [name=oauth_consumer_key, value={MY_CONSUMER_KEY}],
Parameter [name=oauth_nonce, value=154146242657849],
Parameter [name=oauth_signature_method, value=HMAC-SHA1],
Parameter [name=oauth_timestamp, value=1420630967],
Parameter [name=oauth_token, value={RESULT_OAUTH_TOKEN}],
Parameter [name=oauth_verifier, value=59bbeb1cb3ffedca],
Parameter [name=oauth_version, value=1.0],
Parameter [name=oauth_signature, value=yZjgD6iKGxn4lzJVuZHnEaqWsHE=]] api.flickr.com:443/services/oauth/access_token
回复是:
响应代码:401,响应消息:未经授权,错误:oauth_problem = token_rejected
什么可能导致拒绝令牌? 在获得401响应后,我可以尝试使用相同的验证程序再次发出请求,否则这也将返回401响应?
此问题有时会发生,通常是在糟糕的互联网连接期间。 对于授权,我使用flickrj-android-2.1.1
答案 0 :(得分:0)
这些是可以拒绝令牌的一些原因: