0

我创建 facebook 分享按钮的方法是: 1. 创建 share.php(facebook 在这个假网站中捕获元数据并重定向到我想要分享的实际网站

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="https://www.facebook.com/2008/fbml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php echo $_GET['title'];?></title>
        <meta property="og:url" content="<?php echo $_GET['url'];?>" />
        <meta property="og:title" content="<?php echo $_GET['title'];?>" />
        <meta property="og:description" content="<?php echo $_GET['title'];?> "/>
        <? 
        if (isset($_GET['leftImg']) && $_GET['leftImg'] != 'undefined') {
            echo '<meta property="og:image" content="'.$_GET['leftImg'].'"/>';
        }
        if (isset($_GET['rightImg']) && $_GET['rightImg'] != 'undefined') {
            echo '<meta property="og:image" content="'.$_GET['rightImg'].'"/>';
        }
        ?>
    </head>
    <body>
        <script>
            window.location.href = "<?php echo $_GET['redirect'];?>";
        </script>
    </body>

</html>

2. share.php中需要的数据是从主页面传过来的

 window.open('http://www.facebook.com/sharer.php?u=' + encodeURIComponent('http://' + window.location.hostname + '/share.php?url=http://yahoo.com&title=test&redirect=..&leftImg=......&' ),'sharer','toolbar=0,status=0,width=826px,height=536');

问题是,og:url 应该是什么?有两个链接:share.php 和我要分享的实际网站,

如果我使用 share.php?title=...&description=.. ,我仍然需要特定的 url ,这很奇怪:它将是 share.php?url=share.php?url=share.php 最终我仍然无法引用正确的分享网址

如果我使用实际的网站,它不能收集任何元数据,因为我的想法是所有元数据都在 share.php

如何解决问题?谢谢

!!!!!!!!!!!!!!!2013 年 11 月 4 日更新:!!!!!!!!!!!!!!!

我找出了根本问题,它是由不同的图像来源引起的:

eg. http://www.tekxon.com.pk/sites/all/themes/bluemasters/images/gallery/3.jpg

这张图片是由 Facebook 在共享页面上按预期捕获的,工作完美。

eg. http://54.251.107.161/source/test2/2012/05/07/0/3/A/Content/15/Pg015.png 

但是,托管在我的服务器中的此图像并未像第一次那样显示在共享页面上,而是仅在我重新加载页面时才显示。* 虽然它没有显示在分享页面上,但图像显示并存在于我的 Facebook 主页的分享内容中。

为什么会出现这种情况,是不是防火墙设置不正确造成的?谢谢

4

4 回答 4

3

og:url应该是您要重定向到的网站

于 2013-04-10T21:31:56.243 回答
2

og:url应该是包含元数据的网站 - 在这种情况下,您应该使用重定向和元数据或参考share.php ?url=the_url 创建网站。

于 2013-04-10T18:24:09.680 回答
1

我认为您只是被og:url参数误导了:

og:url- 对象的规范 URL,将在图中用作其永久 ID

听起来完全合法,但是:当您指定该参数时,Facebook 会从该 URL 获取元数据,而不是从当前页面获取。这就是为什么当您将引用的 URL 放在那里时没有元数据的原因。还有那个讨厌的原因share.php?url=share.php?url=share.php...

您正在尝试使用以下href属性完成:https ://developers.facebook.com/docs/reference/plugins/like/

我不确定您正在构建什么,但也许这样您甚至可以将共享按钮集成到您重定向到的页面中。然后你仍然设置那个假的元数据页面,然后把它扔到og:url那个(以前重定向到的)页面中:)

于 2013-04-10T18:02:10.537 回答
0

你可以关注演示,祝你好运。

http://www.kimwoodbridge.com/how-to-create-your-one-facebook-share-url/

顺便说一句,在你测试新方法之前。你最好清除fb的会话。 http://developers.facebook.com/tools/debug/og/object?q=http://yourwebsite.com

于 2013-04-15T07:34:27.847 回答