幫忙調整了一個頁面,在裡頭加上 facebook 的「讚」按鈕 (like button),一開始測試看起來正常,所有「讚」的按鈕都有出現,就交差出門了。回家後收到訊息:「那些按讚的按鈕怪怪的耶,按下去後會跳出幾十萬個『讚』,但是重新整理後卻一個讚也沒有?」
詳細追究了一下,嘗試了幾個可能:
- 先到 facebook debugger 看看是不是少了什麼。
把要顯示「讚」按鈕的頁面丟去檢測,看到畫面上說少了 "og:image"、"og:url" 這些 tag,從善如流的補上。
<meta property="og:title" content="網站的標題">
<meta property="og:site_name" content="網站名稱">
<meta property="og:image" content="http://絕對路徑的圖片網址">
<meta property="og:type" content="movie">
<!-- ↑↑↑這邊你可以填你的頁面適合的 type,詳情可參考 facebook 的說明 -->
<meta property="og:url" content="網頁網址">
<!-- ↑↑↑網址加上參數後,會被 facebook 視為不同的頁面,而分散了按讚的數量。之前有看到有人說,指定這個網址後,能避免這情況 --> - 我參考《facebook] 解決 confirm after like 按讚後還要確認的問題 》,
在頁面裡加入以下兩段 meta tag:
<meta property="fb:admins" content="0123456789"/>
<meta property="fb:app_id" content="1234567890">
fb:admins 裡的 ID 可以填多個,以逗號分隔。
至於要怎麼找出這邊要填寫的 ID 呢?方法有兩種。
第一種方法是,你還沒有申請過個人化網址,那麼你可以連結到自己的 facebook 頁面,在網址裡找到自己的 uid。
https://www.facebook.com/profile.php?id=0123456789
第二種方法是,因為你申請過個人化網址了,你的個人頁面已經變成這樣的網址,可能長成這樣:
https://www.facebook.com/test
你可以透過 "http://graph.facebook.com/test"(test 改成你自己的帳號),
找出你自己的 uid,以便填入 fb:admins。
另外 fb:app_id 要填的值,我是在 facebook apps 新建一個 App 取得的。
但是,即使是這樣調整過後,按下「讚」,還是沒辦法馬上讓數字向上加一個,反而跑出「確認」連結來。
點選「確認」這個超連結後,會跳出一個視窗,內容像這樣,要求你再次確認,你是否要為這則訊息按讚。
確認後,有時會直接將既有的按讚數字向上加一,有時候會變成幾十萬之類的驚人數字。
所以我接受了這個討論串的說法:「這是 facebook 防止垃圾行為 (anti-spam behavior) 的作法,免得有人用騙取點擊 (click-jacking) 的方式來取得按讚數。」
(類似的討論串我用 "facebook like button confirm" 找到滿多的。有的人說只要 facebook 觀測到你網頁的行為正常,就不會再這樣要求了。)
目前先向對方解釋,之後看看有沒有人能提出更好的解法來。
此外,facebook 的「讚」按鈕,目前可以透過 iframe、HTML5、XFBML、URL 等方式嵌入。在我看來,考慮到目前主流瀏覽器尚有部分不支援 HTML5,所以我暫時不會用 HTML 5 的做法嵌入;URL 和 iframe 基本上是類似的,功能比較陽春,只能單純按讚、讓推文數字累加上去。
相較之下,XFBML 比較好用,按讚後還能加上一段留言,讓自己的動態時報(塗鴉牆)上顯示為某個網頁按讚時,能帶上一段推薦語。我覺得這樣推薦還滿有吸引力的,以後嵌入按讚按鈕時會優先考慮使用 XFBML 方式。
(不過實際用起來我又覺得 XFBML 顯示出「按『讚』按鈕」的速度比較慢,所以如果有人反映按鈕出現速度太慢,我還是會回頭用 iframe 嵌入。)
留言列表