2013年5月6日 星期一

Facebook 按讚觸發事件

經常看到有文章必須點擊後才能觀看, 這是怎麼做到的的? 那就是取得該會員按讚的事件:

其中 edge.create 代表使用者按下讚時觸發的事件, edge.remove 代表使用者取消這個讚時的事件, 好了,僅此兩招妳就可以做一些邪惡的事情了!

2013年5月4日 星期六

取得Facebook按讚數(以PHP為例)

我們經常在網站中增加社群元件,比如說Facebook Like Button
我們透過以下工具產生按讚代碼 https://developers.facebook.com/docs/reference/plugins/like/
但怎麼取得按讚的數量呢?其實相當簡單,我們丟給facebook api請他回答給我們 預設回傳格式為xml
<?php
  $source_url = "www.example.com/xxx.html"; //想知道按讚數的網址
  $url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($source_url );
  $get_xml = file_get_contents($url);
  $xml_result = simplexml_load_string($get_xml);
  $count = $xml_result->link_stat->total_count;
?> 
範例中我們取得的total_count為全部的按讚數(包含評論等等),請依實際需求使用。 
若是要改寫成json格式,也可以寫成這樣:
<?php
$fburl = 'www.example.com/xxx.html';
$json_string = file_get_contents('http://api.facebook.com/restserver.php?method=links.getStats&urls=' . urlencode($url));
//或是已知道該網址ids就可寫成 $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $url);
$json = json_decode($json_string, true);
?> 
亦或是使用fql語法:
<?php
$fql  = "SELECT url, normalized_url, share_count, like_count, comment_count, ";
$fql .= "total_count, commentsbox_count, comments_fbid, click_count FROM ";
$fql .= "link_stat WHERE url = '".$url."'";
$apifql="https://api.facebook.com/method/fql.query?format=json&query=".urlencode($fql);
$fb_json=file_get_contents($apifql);
?> 

Jquery ajax 簡單範例(以PHP為例)

在實際開發網站時,ajax是經常被使用到的技巧,而jquery提供了一項簡單實現的方法,不囉嗦,直接看範例:

1.php的部分(desc.php)
我們預期它回覆一段文字

<?php
  echo "想要回覆的訊息!!!";
?> 
2.html及javascript的部分(ajax.html)
//引入jquery



這樣就行了嗎?是的,就是這麼簡單,僅僅幾行desc.php能夠收到ajax請求了 ,但我們如何檢驗呢?我們將程式碼改寫一下




假設情境:我們當然不可能沒事使用ajax,通常都會有所需求,因此要求參數要怎麼做呢? 這次我們加入參數,並將回傳內容顯示在某個div容器中


這樣就是最標準的GET傳遞了!有沒有覺得很熟悉? 而php的部分則改寫成這樣:
<?php
  if(isset($_GET['id'])){
    echo "我收到請求了";
  }
?> 
順利的話,你的網頁將成功透過Jquery ajax方法完成一次請求,並回傳訊息顯示於id名為div_name的div之中 若是多個參數你也可以這樣下:

更進階的話,可以使用jquery的.serialize()或是參數使用json格式 請自行參考其他高手的教學囉~小弟我獻醜了! 下一篇我將介紹其他的東東。