问题
for tracking purposes, I want that the URL, which appears on the facebook stream after an "like-action", is slightly different from the URL the user actually liked.
Example:
I use <link rel="canonical" href="http://example.com/test.html">
in my head section to tell facebook to which URL a like-action on this website refers to.
Further down on the website I have <fb:like href="http://example.com/test.html?param=144141">
with the same URL, just with an additional parameter.
My intention: If someone clicks on the like button, facebook puts him to the "group who like http://example.com/test.html" in order to appear next the like button. But when another user sees his like-action on the facebook stream and clicks on it, he should be redirected to http://example.com/test.html?param=144141.
The problem is that this doesn't work, because the canonical declaration in the head section kind of overwrites the href attribute of my <fb:like>
tag. Anyone knows how to solve this problem or does it simply not work?
回答1:
You can't do exactly what you have requested, but you can still add an arbitrary tracking parameter (especially useful for analytics purposes). Facebook recently added a ref parameter to the fb:like
element for this purpose. It's up to you to decide how you want to stuff various bits of information into that single parameter and then parse fb_ref
whenever it's included in an incoming URLs.
Example
Place the following element on your HTML page:
<fb:like href="http://example.com/test.html" ref="144141"></fb:like>
Users clicking the link from Facebook should be directed to:
http://example.com/test.html?fb_ref=144141&fb_source=home_multiline
Documentation
- "Adding More Features to the Like Button" blog post
- fb:like button documentation
来源:https://stackoverflow.com/questions/3149455/facebook-like-href-url-vs-canonical-url