Facebook分享使用PHP

时间:2012-08-17 12:50:39

标签: php javascript html facebook facebook-graph-api

我在该页面上有一个页面有多个图像。每个图像都有自己的共享和喜欢按钮。当我点击分享按钮我想分享那个特定的图像但是没有发生请帮助我。 这是我的代码..

<script type="text/javascript">
        var str;
        function fbs_click(u,val)
        {
            var i;

            var imgobj=document.getElementById(val).getElementsByTagName('img');
            for(i=0;i<imgobj.length;i++){
                str=imgobj[i].src;
                //document.write("<br>");
            }
            alert(str);
            //This is to show fb popup for sharing passed pageurl
            window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u),'sharer','toolbar=0,status=0,width=626,height=436');
            return false;
        }
    </script>

<!--This is for setting img for fb like -->
<script type="text/javascript">document.write('<link rel="image_src" type="image/jpeg"  href="'+str+'">');</script>


$url="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

<div class='sharebutton'>
                            <a href='#' onclick='return fbs_click(\"$url\",\"$src_value\");' class='fb_share_link'>Share on Facebook</a>
                        </div>

我已粘贴代码很短只是了解你的问题

1 个答案:

答案 0 :(得分:0)

问题是,你只是发送页面网址。 Facebook根据网址对其数量进行索引。

由于Facebook不知道用户打算分享的页面上的哪个图像,因此它会抓取页面的默认元标记,这就是用户时间轴上显示的内容。由于每张照片的网址相同,因此共享任何一张照片都会导致所有照片的计数器都会增加。

实现这项工作的一种方法是为您网站上的每个图片创建一个单独的页面,并将其传递给您的onclick函数。该页面具有Facebook解析器可以使用的该图像的特定元数据。当用户关注该链接时,在该页面上放置一个脚本以将其重定向回主页面(最好是右侧照片中的锚点)。对于没有启用javascript的人,你需要有一些方法可以优雅地失败。