Facebook共享功能中的问题

时间:2009-08-11 10:45:18

标签: facebook

我有一个facebook iframe应用程序,我提供了共享功能。我正在使用此代码:

<script>
    function fbs_click()
    {
        u='<?php echo $shareURL;?>';
        t=document.title;
        window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
        return false;
     }
</script>
<style>
    html .fb_share_button {
     display: -moz-inline-block; display:inline-block;
     padding:1px 20px 0 5px; height:15px; border:1px solid #d8dfea;
     background:url(http://b.static.ak.fbcdn.net/rsrc.php/z39E0/hash/ya8q506x.gif)
     no-repeat top right;
    }
     html .fb_share_button:hover {
      color:#b5b8d3; border-color:#295582; background:#3b5998
      url(http://b.static.ak.fbcdn.net/rsrc.php/z39E0/hash/ya8q506x.gif)
      no-repeat top right; text-decoration:none;
     }
</style>

<a href="http://www.facebook.com/share.php?u=<url>" class="fb_share_button" onclick="return fbs_click()" target="_blank" style="text-decoration:none;">Share</a>

我面临的问题是,如果我将你传递到我的网站网址,那么内部共享框标题会正确显示但是当发布到我的个人资料时,点击链接会将我重定向到我的facebook应用程序之外,我不会我想要它留在Facebook页面内。 但是,如果我将u参数更改为http://apps.facebook.com/app/之类的内容,则在共享框内显示标题为apps.facebook.com,当发布在我的个人资料中时,单击它会将我重定向到facebook应用程序内部但重定向到新选项卡。< / p>

我只想根据传递的值设置标题,如果我在个人资料页面上点击它,它应该保留在Facebook内。

2 个答案:

答案 0 :(得分:10)

我找到了解决这个问题的方法你必须更改window.open中的参数并将值作为urlencode传递(我在php中完成)

我附加了更改后的代码:

1)

  <?php
    $title=urlencode('Facebook Share Platform');
    $image=urlencode('imagepath');
    $summary=urlencode('Check This Out');
    $url=urlencode('http://apps.facebook.com/yourapplication');
   ?>

2)

window.open('http://www.facebook.com/sharer.php?s=100&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;&p[images][0]=<?php echo $image;?>', 'sharer', 'toolbar=0,status=0,width=626,height=436');

希望这有助于面临同样问题的其他人。

由于

答案 1 :(得分:1)

def fb_share_knob opts={}
  opts.each { |k,v| opts[k] = CGI.escape(v) if v.present? }
  sharer_url = "http://www.facebook.com/sharer.php?s=100&p[url]=#{ opts[:url] }&p[title]=#{ opts[:title] }&p[summary]=#{ opts[:summary] }&p[images][0]=#{ opts[:image] }"
  <<-FB_SHARE_LINK
  <script type="text/javascript">
    function fbs_click() {
      window.open('#{ sharer_url }','sharer','toolbar=0,status=0,width=626,height=436');
      return false;
    }
  </script>
 <a href="#{ sharer_url }" onclick="return fbs_click()" target="_blank" class="fb_share_link">Share on Facebook</a>
 FB_SHARE_LINK
end

Ruby代码。图像加载问题:如果您要共享的图像位于测试服务器上,请确保它可以从防火墙外部访问