FB Android SDK の RequestBatch::executeAndWait() を使用して、写真に関する情報を取得するためのバッチ リクエストを送信します。このバッチのリクエスト数は 50 未満です。ただし、例外がスローされることがあります: FacebookException: Unexpected number of results
.
さらに調査すると、スローされている例外は Request::createResponseFromObject
メソッド内にあることがわかります。
if (!(object instanceof JSONArray) || ((JSONArray) object).length() != numRequests) {
FacebookException exception = new FacebookException("Unexpected number of results");
throw exception;
}
この例外は常にスローされるわけではありませんが、特定の Android デバイスではランダムにスローされ、常に同じクエリではスローされません。なぜこれが起こっているのかについての手がかりは非常に役に立ちます。以下は、バッチ リクエストのサンプルです。
- リクエスト:
- ID: 42
- URL: https://graph.facebook.com
- 方法: ポスト
- ユーザーエージェント: FBAndroidSDK.3.6.0
- コンテンツ タイプ: マルチパート/フォーム データ。境界=3i2ndDfv2rTHiSISABOUNDARYFORHTTPEefj3q2f
- batch_app_id: APP_ID
- batch[{ "relative_url": "SOME_PHOTO_ID1?access_token=ACCESS_TOKEN&fields=images,place.fields(id)&format=json&sdk=android", "method": "GET" }, { "relative_url": "SOME_PHOTO_ID2?access_token=ACCESS_TOKEN&fields= images,place.fields(id)&format=json&sdk=android", "method": "GET" }, { "relative_url": "SOME_PHOTO_ID3?access_token=ACCESS_TOKEN&fields=images,place.fields(id)&format=json&sdk=android" , "メソッド": "GET" }, { "relative_url": "SOME_PHOTO_ID4?access_token=ACCESS_TOKEN&fields=images,place.fields(id)&format=json&sdk=android", "メソッド": "GET" }, ....より多くのそのようなリクエスト < 50 ]
応答は次のようになりSorry, something went wrong. We're working on it and we'll get it fixed as soon as we can.
ます。以下の例を参照してください。! http://www.weliveinbritain.co.uk/wp-content/uploads/2012/11/ss-facebook1.png
問題は、この例外がランダムにスローされ、常に同じクエリでスローされるとは限らないことです。したがって、一貫して再現可能ではありません。考えられる理由についての助けをいただければ幸いです。