1

有了Facebook,我需要知道,誰(哪個用戶)在facebook頁面上發表了評論。 我在我的javascript文件中發出了兩個請求,包括所有帖子中的第一個,我希望每個帖子的請求都有facebook-batch-requests。很高興有,如果我可以選擇只是有一些評論的職位。帶jsonpath的facebook批量請求

FB.api('/', 'POST', { 
    batch: [ 
    { 
    // all posts from page from last year 
    'method': 'GET', 
    'name': 'posts_page_year', 
    'omit_response_on_success': false, 
    'relative_url': fbPageID + '/posts?since=2012-01-01&until=' + timeNow + '&limit=200000' 
    }, 
    { 
    // all post-ids from last year 
    'method': 'GET', 
    "relative_url": "/{result=posts_page_year:$.data.*.id[?(@.comments.count!=0)]}" 
    } 
] 
}, function(response) { 
    callback(response); 
} 
); 

我的問題是第二批請求,則返回錯誤(#803)。我試了一下。

{ 
    // all post-ids from last year 
    'method': 'GET', 
    "relative_url": "/{result=posts_page_year:$.data.0.id}" 
} 

返回帶有第一個後置請求的對象。一切都很好。但我希望每篇文章都有這篇文章,而不僅僅是第一篇文章。

{ 
    // all post-ids from last year 
    'method': 'GET', 
    "relative_url": "/{result=posts_page_year:$.data.*.id}" 
} 

返回錯誤(#803)您請求的某些別名不存在,並且包含所有ID的列表。

{ 
    // all post-ids from last year 
    'method': 'GET', 
    "relative_url": "/{result=posts_page_year:$.data.*.id[?(@.comments.count!=0)]}" 
} 

返回此錯誤: (#803),一些你所要求的別名不存在:{結果= posts_page_year:。$數據* ID [

我嘗試了幾乎所有和需要你的幫助,因爲我不知道如何解決這個問題。謝謝!

+0

我已經解決了這個問題。但目前,我不記得 - 很久以前。如果有人對解決方案感興趣,請添加評論。 – btemperli

+0

你好,我感興趣的解決方案:) – Morti

+0

嗨@Morti,你可以在我的[答案](http://stackoverflow.com/a/26582946/2241151)閱讀解決方案。 – btemperli

回答

0

在Facebook的batch documentation,它指出:

Note that for security reasons filter and script JSONPath constructs are not allowed in the JSONPath expression.

這可能意味着你不能使用類似的代碼?(@.comments.count!=0)

0
FB.api('/', 'POST', { 
    batch: [ 
    { 
     // 0: all likes from user 
     'method': 'GET', 
     'relative_url': 'me/likes' 
    }, 
    { 
     // 1: all user-posts from last month 
     'method': 'GET', 
     'relative_url': 'me/posts?since=' + timeMonthAgo + '&until=' + timeNow + '&limit=200000' 
    }, 
    { 
     // 2: all user-posts from last year 
     'method': 'GET', 
     'relative_url': 'me/posts?since=' + timeYearAgo + '&until=' + timeNow + '&limit=200000' 
    } 
    ] 
    }, function (response) { 
    callback(response); 
    } 
); 

我不得不設置限制,讓每個響應已現內容的限制。可以將限制設置爲不可能的大數目。您必須使用參數sinceuntil設置時間範圍。

我希望這有助於某人。