2010年1月18日 星期一

facebook FQL 及 分享頁面(發怖訊息)使用心得

在開發模式官方就會提供一個範例來,把前面的變數照用

後面使用 $result = $facebook->api_client->fql_query($query); 就可以執行 Facebook 「允許」的 SQL 語法

$query 裡面就是 SQL CODE,譬如一開始的 $user_id = $facebook->require_login(); 就是把讀這頁的使用者 Facebook ID 變數放到 $user_id

因為 FQL 語法不提供 JOIN,所以要撈兩個資料表要用 WHERE IN 的方式(其實我也還不是很熟),譬如要撈出使用者朋友的資料,我就會使用 user(個人資料) 及 friend(朋友)這兩個table

語法就是

SELECT uid,name from user WHERE uid IN (SELECT uid2 from friend where uid1 = '$user_id')

然後如果是一些程式需求,可能是列出隨機的,就在後面加上 ORDER BY rand() 或是再加個 LIMIT 多少這樣,都能跑得出來

而執行這串 SQL 的方法就是

$result = $facebook->api_client->fql_query($query); ($query就是SQL code)

-------------

Facebook 有個 share.php 頁面,可以讓你把網頁中的連結分享到 Facebook 上,它所吃的那頁就是吃 meta name=title <--標題,以及 meta name=description <--內容,然後再隨便 img src 放張圖,就是縮圖了,當然也能純丟串文字過去,像噗浪及 twitter 一樣,這些上網都找得到~

我在 Facebook 分享方式是習慣用 window.open 的連結開視窗

語法就是
http://www.facebook.com/sharer.php?u=我的網址aaa.php

這個 aaa.php 是個純粹只有三個meta(utf-8,title,description)以及一張圖片img src的頁面

然後別人一進來就用 php 的 header("refresh: 0; url=欲導向的網址"); 給導掉

這頁只是為了讓 facebook 送出完整的頁面

但有在用的人會發現,如果修改了 aaa.php 這頁,facebook 的 share 資訊並不會更新

所以是 facebook 有抓快取,這時只要在 aaa.php 後面帶個變數就可以讓 facebook 重抓了

像我乾脆就在頁面後帶一個 rand 的數字

嗯 ... 說得很亂,要真的有寫的人知道我在講什麼吧,一些很基本的心得 ~

沒有留言: