0

写真をflickrにバックアップするAndroidアプリを開発しています。

次の問題が何度かありました: リクエスト トークンをアクセス トークンに交換する際に、アクセス トークンを含む応答ではなく、401 応答 ("応答コード: 401、応答メッセージ: Unauthorized、エラー: 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、応答メッセージ: Unauthorized、エラー: oauth_problem=token_rejected

トークンの拒否の原因は何ですか? 401 応答を受け取った後、同じベリファイアを使用して別の要求を行うことはできますか? または、これも 401 応答を返しますか?

この問題は、通常、インターネット接続が悪いときに時々発生します。承認には flickrj-android-2.1.1 を使用します

4

1 に答える 1