1


Facebook SDK の RequestBatch クラスで複数のリクエストを実行したい。
しかし、奇妙な問題が発生しています。これは、requestBatch が 2 番目の応答に対して常に「エラー データ」を返すことです。エラー応答は次のとおりです。

{Response:  responseCode: 200, graphObject: null, error: {HttpStatus: 400, errorCode: 601, errorType: OAuthException, errorMessage: (#601) Parser error: unexpected end of query.}, isFromCache:false}

そして、私のソースがあります。このコードでは、2 つのリクエストを実行しました。1 つのリクエストを実行すると、RequestBatch は正しいデータを返すため、2 つのリクエストは正しいと確信しています。2 つのリクエストを実行すると問題が発生し、2 番目のリクエストのみがエラー応答を受け取ります。

 String mutualFriendPatternQuery="SELECT name,mutual_friend_count FROM user WHERE uid IN(1797105393,100000027665293)";

        Bundle args1=new Bundle();
        args1.putString("q", mutualFriendPatternQuery);

        Request request1 = new Request(session, "fql", args1, HttpMethod.GET);
        requests.add(request1);

        String commonLikesQuery="SELECT page_id FROM page_fan WHERE uid = 100004429063597 AND page_id IN (SELECT page_id FROM page_fan WHERE uid = me())";

        Bundle args2=new Bundle();
        args2.putString("q", commonLikesQuery);

        Request request2 = new Request(session, "fql", args2, HttpMethod.GET);
        requests.add(request2);

        RequestBatch requestBatch=new RequestBatch(requests);
        requestBatch.setTimeout(60000);

        List<Response> responses = requestBatch.executeAndWait();

このコードの背後で、response.get(1) がエラー応答を返します。間違いを見つけるのを手伝ってください。
更新 Graph API Explorer で 2 つのビハインド リクエストをテストしました。それらは問題ありませんが、Androidでエラーが発生します。「バッチ」パラメータがあります:

    [{"method":"POST","relative_url":"method/fql.query?query=SELECT name, mutual_friend_count FROM user WHERE uid IN(1511547166,100004190323671)"}
,{"method":"POST","relative_url":"method/fql.query?query=SELECT page_id FROM page_fan WHERE uid= 652869235 AND page_id IN (SELECT page_id FROM page_fan WHERE uid = me())"}

修正済み それは私の愚かなせいです。args1 を args2 に変更して修正します。

4

1 に答える 1

2

これがあなたの問題だと思います:

Bundle args2=new Bundle();
args1.putString("q", commonLikesQuery); // <----- this should be args2.putString(...)
于 2014-03-18T03:19:28.803 に答える