2013-07-21 30 views
0

我正在構建一個網站,我需要檢索Facebook共享並喜歡來自不同網站的衆多鏈接和URL。「如何獲取Facebook股票和喜歡某個網址?」的答案問題

問題是,對於某些網址,無法獲得我想要的內容。例如,當我查找有關像​​這樣的鏈接的數據時,我得到的所有數據都是關於http://www.example.com/?a=1的錯誤數據,其他網址(&b=2&c=3)僅被Facebook忽略。

在StackOverflow中,很多人都在尋找答案,很多問題都沒有答案。所以,一旦我做對了,我回來告訴我是如何做到的。

P.S. :這隻適用於非Facebook網址。如果您正在尋找股票並喜歡內部Facebook鏈接(圖片,視頻......),這對您而言不起作用。我將使用PHP來回答這個問題。

回答

0

爲了獲得喜歡和份額計數,我使用FQL而不是Graph API(儘管我實際上使用Graph API發送查詢)。

但是這還不夠:爲了能夠這樣做,我在我想獲取數據的URL上調用了rawurlencode()函數。否則,我會不斷收到錯誤。

所以,這likes(),我使用的功能有罪狀:

function likes($url) { 
    $url = rawurlencode($url); 
    $json_string = file_get_contents("http://graph.facebook.com/fql?format=json&q=SELECT%20share_count,%20like_count%20FROM%20link_stat%20WHERE%20url='$url'"); 
    $json = json_decode($json_string, true); 
    if (key_exists("data", $json)) { 
     if (is_array($json["data"])) { 
      if (array_key_exists("0", $json["data"])) { 
       return intval($json["data"]["0"]["share_count"]) + intval($json["data"]["0"]["like_count"]); 
      } else { 
       echo "Error : '0' is no key<br/>"; 
       return 0; 
      } 
     } else { 
      echo "Error : data is no table <br/>"; 
      return 0; 
     } 
    } else { 
     echo "Error : No data key <br/>"; 
     return 0; 
    } 
} 

我希望這會幫助別人一天:)

相關問題