簡體   English   中英

Facebook Graph API:查詢/ me / photos工作正常,但/ me / photos?limit = 100返回錯誤

[英]Facebook Graph API: querying /me/photos works fine, but /me/photos?limit=100 returns an error

我嘗試查詢狀態,喜歡,照片,一切正常。

但是,當我在字符串末尾添加一個限制“?limit = 100”時,我從Response對象中收到了一個錯誤類型為errorType:OAuthException,errorMessage:必須使用活動訪問令牌來查詢有關當前用戶的信息

我的代碼的相關部分如下:

Request rq3 = new Request(Session.getActiveSession(), "/me/statuses?limit=100", null, HttpMethod.GET, new Request.Callback() {
            @Override
            public void onCompleted(Response response) {
                parseFeed(response, 2);
                getNext(response, 2);
            }
        });
        rq3.executeAsync();


private void parseFeed(Response response, int type) {
    try {
        Log.v("response", response.toString());
        JSONArray feedArr = response.getGraphObject().getInnerJSONObject().getJSONArray("data");
        switch(type) {
        case 0:

            numLikes += feedArr.length();
            likesView.setText("Likes: " + String.valueOf(numLikes));
            break;
        case 1:
            numPhotos += feedArr.length();
            photosView.setText("Photos: " + String.valueOf(numPhotos));
            break;
        case 2:
            Log.v("response", response.toString());
            numStatuses += feedArr.length();
            statusesView.setText("Statuses: " + String.valueOf(numStatuses));
            break;
        }

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

private void getNext(Response response, final int type) {
    Request next = response.getRequestForPagedResults(Response.PagingDirection.NEXT);
    if (next != null) {
        Log.v("status", "getting next");
        next.setCallback(new Request.Callback() {
            @Override
            public void onCompleted(Response response) {
                // TODO Auto-generated method stub
                parseFeed(response, type);
                getNext(response, type);
            }
        });
        Request.executeBatchAsync(next);
    }
    else {
        Log.v("status", "ended");
    }
}
Request(Session, String, Bundle, HttpMethod, Callback)

參數與Graph API請求一起傳遞的其他參數; 參數必須是字符串,數字,位圖,日期或字節數組。

根據doc ,參數不應成為圖形路徑的一部分。 您實際上正在傳遞一個null Bundle


正確用法:

Bundle params = new Bundle();
params.putString("limit", 100);

Request rq3 = new Request(Session.getActiveSession(),
                          "/me/statuses",                         
                          params,                         
                          HttpMethod.GET,                 
                          new Request.Callback() {
                              @Override
                              public void onCompleted(Response response) {
                                  parseFeed(response, 2);
                                  getNext(response, 2);
                              }
                          }
                     );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM