Facebookのいいね!(Like)ボタンが上手く動いてくれない時の対処法


少し前にFacebookのいいね!ボタンが上手く動かないという相談を受けた.
内容としては,製品の詳細ページのようなところにいいね!ボタンを設置しているが,動くページと動かないページがあるとのこと.


そんなことあるのかぁと思って調査をしてみると,確かに出来るものと出来ないものがあって,なおかつ規則性が見つからない.
例えば,「?id=12345」はダメだけど「?id=1234」は大丈夫みたいな感じ.桁数とか色々試してみたけど規則性は見られず.


AjaxFacebookAPIにリクエストを出しているところを監視してみたら,以下のようなエラーが返ってきていた.

for (;;);{"__ar":1,"payload":{"requires_login":false,"success":false,"already_connected":false,"is_admin":false,"show_error":false,"error_info":null}}


このエラーを元に調べたら,Stack Overflowというフォーラムに同じような現象にあっている人と解決策をコメントに書いてくれている人がいた.

php - facebook like button - Stack Overflow


要はリンクの末尾に「s=true」みたいのつけたらいいんじゃない?とのこと.「?id=12345&s=true」みたいな.
実際,これにしてみたら上手く動いているような感じでした.ただ,APIの不具合じゃないかということも書かれていたので,正しい対策かどうかはわかりません.