簡體   English   中英

Facebook FQL網址喜歡的朋友工作很奇怪

[英]Facebook FQL url likes of friends work strange

嗨,我想根據給定的URL計算我的朋友的url喜歡,我有以下代碼:

    function mQ(url){

        FB.api({
            access_token:'CAACEdEose0cBABMG67fV8Yn5cHo5fkb6kT6npRWO7YQL8zagoFLrz5OFLFIEPVUJhMwf9rql9oAqktDUJMKBGr5NNRXJ73jf418gspbfklvdJs6Kx1EkCRutYhSnSW4Binb4F9AlOUIHfXZC052SOdlgtxTSng6gM4CAZAstpLAoOd1p5pnCpNadnlluMqOxjHo1jx1QZDZD', 
            method: 'fql.multiquery', 
            queries: {
                "query1":"SELECT total_count, like_count, click_count, normalized_url FROM link_stat WHERE url='"+url+"'",
                "query2":"SELECT url FROM url_like WHERE user_id IN (SELECT uid1 FROM friend WHERE uid2 = me())"
            } 
        }, function(response) {
            console.log(response)
            var urlLikes = 0;
            var total = response[0].fql_result_set[0].total_count;
            var likes = response[0].fql_result_set[0].like_count;
            var clicks = response[0].fql_result_set[0].click_count;
            var normalized_url = response[0].fql_result_set[0].normalized_url;
            var results = response[1].fql_result_set
            console.log('Total: ' +total+ ', Likes: ' + likes+ ', Clicks: ' +clicks)
            console.log('Urls: ' + results.length)
            console.log('=========================================================================')
            console.log('Checking for url: ' + url);
            console.log('=========================================================================')

            for(var i = 0; i < results.length; i++){

                var newUrl = decodeURI(url).toLowerCase();
                var newFriendUrl = decodeURI(results[i].url).toLowerCase();

                if (newUrl == newFriendUrl) {
                    urlLikes += 1;
                }

            }

            console.log('Url likes: ' + urlLikes);
        });
    }

我從第二個查詢中獲得一個鏈接,該鏈接是一個URL,我將它提供給我的一個朋友,讓他喜歡它,他的計數器沒有增加,但是該URL從第二個查詢列表中刪除了!

我這是怎么了

您嘗試實現的內容存在多個問題:

  1. 關於在特定情況下如何獲取喜歡的用戶ID的問題很多。 簡短的答案是-如果您花費太多時間而又找不到解決方案-您將不會輕易獲得這些喜歡,或者根本無法獲得它們。 因此,facebook不會讓您擁有喜歡特定URL的用戶ID,也不會找到簡單的解決方案或來自facebook的指導性文檔。 類似問題參考

  2. 讓我們思考數字。 如果您有100個朋友,並且所有人在他們的Facebook生涯中都喜歡至少100個網址。 這意味着您的“ query2”查詢的結果集應為10,000個url,而這對於fql查詢是不實際的。 在stackoverflow甚至在Facebook博客上都有很多關於它的文章。 您必須將此類查詢限制為已測試的特定數量。 有時可能是數千,有時不超過幾百。 在您的情況下,我將使用數百個。 因此,完成任務的一種方法是將query2限制為“ LIMIT 0,100”-試試看,您將看到multyquery有效。 下一步是通過循環offset參數在其余結果上“分頁”。 因此,您必須發出100個fql請求才能獲取您的朋友喜歡的所有網址。 從而:

  3. 您嘗試執行的操作無法實時完成(一個查詢)。

如果您的訪問令牌具有user_likes和friends_likes權限, 則只需要查詢url_like表即可。

暫無
暫無

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

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