The href URL must be absoluteはURLエンコードが原因とは限らない気がする

  • 投稿日:
  • by
  • カテゴリ:

ふと気づいたら、いいねボタンがエラーになってました。

20140721180101

エラー!表示はリンクをともなっていて、以下のようなメッセージが出ます。

20140721163945The href URL must be absolute

 

ググルと1年半くらい前の情報として、

hrefに渡すURLを”URLエンコード”していると発生するので、

URLエンコードしないようにしたら直ったぴょん

的なものが複数見つかりました。

 

サンプル:

Facebook Like Button The href URL must be absolute Error [Quick Fix]

 

手元ではMT5を使っているので、グローバルなんちゃらでencode_url="0"にしても効かず(効いたら危ない気もする)、よくわからないので、FBのDevページでコードを取り直しました。

すると、いまどきはappidなるパラメータが追加されているではないですか。(下記赤字)

これが関係するのかどうかよくわかりませんが、とにかくまぁ、表示されるようになったので、G+1ボタンも不恰好に配置してみました。

 

修正後(Likeボタン表示される)

<iframe src="//www.facebook.com/plugins/like.php?href=<$MTEntryPermalink encode_url="1"$>&width&layout=button_count&action=like&show_faces=true&share=false&height=21&appId=XXXXXXXXXXXXXXXX" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:21px;" allowTransparency="true"></iframe>

修正前(エラー!表示:The href URL must be absolute)

<iframe src="//www.facebook.com/plugins/like.php?href==<$MTEntryPermalink encode_url="1"$>&send=false&layout=button_count&width=450&show_faces=true&action=like&colorscheme=light&font=tahoma&height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>