2016-10-14 6 views
0

私はFacebookのAndroid SDKを使用してユーザーに関する情報を取得しています。Facebook Android SDK response.getRequestForPagedResults(GraphResponse.PagingDirection.NEXT)がnullを返します

私の最初の要求は以下の通りです:

GraphRequest request = GraphRequest.newMeRequest(
       AccessToken.getCurrentAccessToken(), this); 

Bundle parameters = new Bundle(); 
parameters.putString("fields", "id,name,events"); 
request.setParameters(parameters); 
request.executeAndWait(); 

、これは正常に動作します。次のようにコールバックが見えます:

@Override 
public void onCompleted(JSONObject object, GraphResponse response) { 
    User user = parseAndValidateFacebookResponse(object); 
    if (user.getEvents().getData().size() != 0) { 
     // do stuff here 
    } 

    GraphRequest nextRequest = response.getRequestForPagedResults(GraphResponse.PagingDirection.NEXT); 
    if (nextRequest != null) { 
     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,events"); 
     nextRequest.setParameters(parameters); 
     nextRequest.setCallback(this); 
     nextRequest.executeAsync(); 
    } 
} 

私はJSONObjectを解析することができるよ、と私は生の応答を検査するとき、それはFacebook's Graph API Explorerが与えるものを私と同じように見えます。 JSON(生GraphResponse中だけでなく、グラフエクスプローラで)の

一部は、改ページを示しています。しかし

"paging": { 
    "cursors": { 
    "before": "TVRRek1qTTJOREF3TXpZAMU1qQTFNRG94TmprNE5URTJNREF3T2pFNU9UZAzFPREF4TXpNNU9EUXdPQT09", 
    "after": "TVRVM05qYzVNVEkxTlRrMU1ERTJNam94TkRjME1EVTVOakF3T2pFNU9UZAzFPREF4TXpNNU9EUXdPQT09" 
    }, 
    "next": "https://graph.facebook.com/v2.8/customerID/events?access_token=accesstoken" 
} 

、私はGraphResponseの一環として、次のGraphRequestを取得しようとすると、私はいつも返信null

私は間違っていますか?

答えて

0

私はこれは私が代わりに「通常の」GraphRequestのnewMeRequestを使用していたという事実に関連しているかどうかわからないんだけど、私は次のように私の実装を変更した後で、この作業を得た:

Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,events"); 
     parameters.putString("limit", "25"); 

     new GraphRequest(
       AccessToken.getCurrentAccessToken(), 
       "/" + Profile.getCurrentProfile().getId() + "/events", 
       parameters, 
       HttpMethod.GET, 
       this) 
     .executeAsync(); 

@Override 
public void onCompleted(JSONObject object, GraphResponse response) { 
    User user = parseAndValidateFacebookResponse(object); 
    if (user.getEvents().getData().size() != 0) { 
     // do stuff here 
    } 

    GraphRequest nextRequest = response.getRequestForPagedResults(GraphResponse.PagingDirection.NEXT); 
    if (nextRequest != null) { 
     Bundle parameters = new Bundle(); 
     nextRequest.setParameters(parameters); 
     nextRequest.setCallback(this); 
     nextRequest.executeAsync(); 
    } 

}

今、私はgetRequestForPagedResultsを使用して次のページをたどることができます。

関連する問題