Feed on
Posts
Comments
Email訂閱

由於發現在站內按讚的次數與推薦數不同步,因此懷疑是否是否來自站外的推薦(但因必須include js,似乎不太可能);所以又懷疑是否來自於搜尋引擎。但搜尋引擎應該也不會登入fb,但也只能假設其有一個session的機制,巧妙的避開。於是在讚的event中加入判斷是否來自搜尋引擎。效果有待驗證。

var userAgent = navigator.userAgent;
if(userAgent.match(/(Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i))
        return;

參考資料:

  1. http://lonelymisconception.blogspot.com/2008/11/javascript.html
  2. http://yoonow.pixnet.net/blog/post/11140571-php%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%B7%E7%B6%B2%E7%AB%99%E4%BE%86%E8%A8%AA%E8%80%85%E6%98%AF%E5%90%A6%E7%82%BA%E6%90%9C%E5%B0%8B%E5%BC%95%E6%93%8E%E6%A9%9F%E5%99%A8%E4%BA%BA

真正原因可能是 like-jacking attacks
從1/3開始,按了讚之後無法直接讚,而是會先跳出確認的按鈕,才能進一步按讚。根據facebook這一篇的討論這可能是like-jacking attacks,因此facebook官方主動加入確認的按鈕。

如果原因是like-jacking attacks,就可以解釋為何會出現按讚數與推薦數不一致的情形。like-jacking attacks無法造成真正的讚,但卻仍能觸發edge event產生而導致文章推薦數增加。

至於要怎麼不要讓confrim出現,看來只有等facebook官方覺得like button usage恢復正常之後,才能解除吧。

1/6 在php判斷是否有登入FB,有登入才能增加推薦數。但發現android瀏覽器雖可按讚,但無法抓到user id,因此推薦數不能增加(fb 讚有增加)。目前的狀況是恢復不需判斷是否有登入fb。

1/7 晚,如果已先行setAccessToken,則getUser得到並非是現行登入的fb user,而是擁有accessToken的那個user

1/9 IE6或IE8無法使用Graph API getUser(不管是php或是javascript SDK),經過追蹤是getLoginStatus的callback沒有回應。但可以正常按讚推薦。(在HTML tag加入opengraph定義,IE8即可,xmlns:og=”http://opengraphprotocol.org/schema/”,但IE6仍然不行。)

1/10 經過追蹤log,發現大部分IE8仍然不行,有些則是來自AppleWebKit使用IE8,目前持續觀察。有可能跟user是否取得app授權有關。經過測試,如果APP沒有得到user的授權,則仍無法抓到user fb id。

 

留言區