Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类似Facebook的按钮将查询字符串添加到url_Facebook_Facebook Like - Fatal编程技术网

类似Facebook的按钮将查询字符串添加到url

类似Facebook的按钮将查询字符串添加到url,facebook,facebook-like,Facebook,Facebook Like,我正在实现facebook like按钮,并为其指定了like的url, 当我点击LIKE按钮时,我在facebook上看到了正确的页面 该链接是代码中指定的,并附加了一些奇怪的facebook查询字符串 对于exmpl: 我喜欢的那一页是 当我在facebook上点击喜欢的链接时,url是: ?fb#u action#u id=######&fb#u action#u types=og.likes&fb#u source=timeline#og&action#object_map={“###

我正在实现facebook like按钮,并为其指定了like的url, 当我点击LIKE按钮时,我在facebook上看到了正确的页面 该链接是代码中指定的,并附加了一些奇怪的facebook查询字符串

对于exmpl: 我喜欢的那一页是

当我在facebook上点击喜欢的链接时,url是: ?fb#u action#u id=######&fb#u action#u types=og.likes&fb#u source=timeline#og&action#object_map={“#########action#类型(map={“{”###########og


页面加载不正确,这是facebook的错误吗?

facebook在URL中添加了各种参数,以便您可以跟踪访问的来源等。可能是您的页面不使用这些参数,而不是facebook。理想情况下,如果不需要这些参数,页面应该忽略它们。

使用xfbml或html5版本的社交插件,并将其包含在元标记中

<meta property="og:url" content="...." />

我通过在fb:like按钮和og:URL中定义URL解决了这个问题

<fb:like href="http://www.yourwebsite.com/yourfullurl.html" send="true" layout="button_count" width="300" show_faces="false"></fb:like>


现在,不管从FB返回的参数是什么,它似乎都尊重计数。

我们可以在.htaccess文件的帮助下删除/删除附加的查询字符串。 将下面提到的代码放在.htaccess文件中:

RewriteCond %{QUERY_STRING} fb_action_ids=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]
RewriteCond %{QUERY_STRING} fb_comment_id=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]

这会起作用:)

不是,这些参数是facebook使用的。。。对于从FacBook重定向的l.php文件,Facebook仍然将这些URL添加到最终URL。所有OpenGraph操作在URL中都有此信息,但它是用于跟踪目的的。修复您的站点/页面以忽略这些。不可能“忽略”这些,因为此查询会弄乱所有类似url的/共享服务。如果您在xyz.com上有1000个喜欢,那么在xyz.com/?test123上有0个(!)喜欢,这是正确的。从技术上讲,
xyz.com
不同于
xyz.com/?test123
。您不应该在浏览器中为Like按钮使用URL,您应该使用OpenGraph标记为页面定义URL。如何定义?我使用的是iframe版本的代码,url有一个参数,所以我使用它。还有另一种方法吗?这解决了一个问题,即无论查询字符串如何,都要为同一URL计算所有喜欢的内容,但我正在处理一个我无法控制的客户端站点,当添加查询字符串时,该站点将失败。这意味着人们不能点击用户FB墙上的链接。如果有必要可以删除查询字符串,那就太好了。xfbml+metatag og:url解决这个问题。FB wall中的帖子仍然有查询字符串,但当您单击时,将重定向到metatag中指定的url。如果你不能控制页面的内容,我认为你无法解决这个问题。