Ruby on rails 类似Facebook的按钮返回错误的查询参数

Ruby on rails 类似Facebook的按钮返回错误的查询参数,ruby-on-rails,facebook,Ruby On Rails,Facebook,嗨,伙计们,我已经搜索了所有的问题,但还没有找到答案。我已经走到了死胡同,我的公司分析团队开始担心他们收集的跟踪数据 我们目前使用SiteCatalyst活动代码来跟踪和收集网站上的数据。有一个非常小的查询参数,随机放置在整个网站的链接上 例如:?cmp=23-42 查询被正确地附加到“共享”按钮上,从中我可以看出,表单提交时正在传递查询。通过检查页面上的iframe,我在一个隐藏的表单字段中看到以下值 <input type="hidden" autocomplete="off" nam

嗨,伙计们,我已经搜索了所有的问题,但还没有找到答案。我已经走到了死胡同,我的公司分析团队开始担心他们收集的跟踪数据

我们目前使用SiteCatalyst活动代码来跟踪和收集网站上的数据。有一个非常小的查询参数,随机放置在整个网站的链接上

例如:
?cmp=23-42

查询被正确地附加到“共享”按钮上,从中我可以看出,表单提交时正在传递查询。通过检查页面上的iframe,我在一个隐藏的表单字段中看到以下值

<input type="hidden" autocomplete="off" name="href" value="http://my-site.com/some-post-or-article-name?cmp=23-42">
在我发布喜欢的内容和任何我想要的评论之后,我打开facebook,点击我刚刚发布的链接。我的唯一跟踪查询被facebook查询参数替换

http://my-site.com/some-post-or-article-name?fb_action_ids=4184...&fb_action_types=og.likes&fb_source=aggregation&fb_aggregation_id=2883...

这发生在我们列出的每一篇文章和事件中,目前在60k范围内,这就是我的问题所在。所以我的问题是

facebook文档中是否有我没有提到的东西,比如在我的fbml标签中添加一个类似于
query=“cmp=23-42&more\u stuff=more custom stuff”
?这样,当添加我的唯一查询参数时,可以自动附加到facebook查询参数的末尾

有没有人遇到过这个问题,你是如何解决的

如果我不能使用自定义跟踪,是否有任何创造性但非黑客的方法将返回的fb_action_id或fb_aggregation_id与自定义活动代码关联

有解决办法吗

我可以分享更多关于我们网络应用的信息。
平台:RoR(我愿意使用解决此问题的gem,如果有可用的话)

使用
ref
选项,用户可以将自定义数据附加到
fb\u ref
参数中返回的查询字符串中

在这里找到

不幸的是,这并不是很有帮助,因为处理数据报告的脚本会通过onload方法自动在url中查找活动代码。下面是我为从
fb_ref
param中提取值而编写的一些有用的js。可根据需要自由填写以修改此内容

facebookCustomQueryString: function(){
 if( window.location.href.indexOf( 'fb_ref=' ) == -1 ) return;
 var location = window.location.href,
     params = location.split('?').pop().split('&'),
     refCode, iframe, container;

 for(var i=0, m=params.length; i<m; i++){
  if( params[i].indexOf('fb_ref') > -1 ){
    var ref = params[i];
    refCode = ref.replace('fb_ref=','');
    break;
  }
 }
}
remove: function(ui){
 ui.parentNode.innerHTML = '';
 ui.remove(ui.selectedIndex);
}
最后,我的删除方法。。再次免费填写,以便根据需要进行修改

facebookCustomQueryString: function(){
 if( window.location.href.indexOf( 'fb_ref=' ) == -1 ) return;
 var location = window.location.href,
     params = location.split('?').pop().split('&'),
     refCode, iframe, container;

 for(var i=0, m=params.length; i<m; i++){
  if( params[i].indexOf('fb_ref') > -1 ){
    var ref = params[i];
    refCode = ref.replace('fb_ref=','');
    break;
  }
 }
}
remove: function(ui){
 ui.parentNode.innerHTML = '';
 ui.remove(ui.selectedIndex);
}
对于IE浏览器,您可能需要稍微修改remove方法。我还没有测试过,但你可以试试

remove: function(ui){
 ui.parentElement.removeChild(ui);
  // or
 var parent = ui.parentElement;
 parent.removeNode(true);
}

我希望这对我这种情况下的任何人都有帮助…

可能的Are服务器重复是nginx和phusion,而不是apache,我们无法访问mod_rewrite