【问题标题】:Facebook Share Button ProblemsFacebook 分享按钮问题
【发布时间】:2010-12-19 02:17:43
【问题描述】:

我正在尝试使用 Facebook 分享按钮为链接创建一个分享按钮:

http://www.facebook.com/facebook-widgets/share.php http://wiki.developers.facebook.com/index.php/Facebook_Share

但是,当我尝试在我的 URL 中使用 t 值时,它们不起作用。

我什至尝试使用 API 页面上的示例:

http://www.facebook.com/sharer.php?u=http%3A%2F%2Fdevelopers.facebook.com%2F&t=Facebook%20Developers

它不起作用...它将标题设置为 developers.facebook.com 而不是 URL 指定的 Facebook Developers

有谁知道我怎样才能使它正常工作?

我希望我的分享链接显示为...“我正在分享的内容的标题”,然后...直接指向该项目的网址。

【问题讨论】:

    标签: facebook


    【解决方案1】:

    Facebook 分享链接从页面/网站动态获取标题和图像以进行分享。链接中指定的标题仅在 Facebook 加载页面详细信息时使用。看看这个链接:

    http://www.facebook.com/sharer.php?u=http://www.rackspace.com&t=SOME%20TITLE

    【讨论】:

    • 是的,那么____有什么意义呢?当我制作 URLS 时,它会弹出我的标题,然后更改它...是我为那些特定链接制作动态标题的唯一解决方案吗?因此,当 facebook 从该 URL 加载页面详细信息时,它会得到我想要的 <title>
    • 另外,当使用 u=http://www.mysite.com 之类的东西时,facebook 分享页面会加载 My Site Title,然后考虑片刻后将其更改为 www.mysite.com
    • 是的,这就是 Facebook 的做法。不知道为什么。是你的网站吗?您可以更改标题或使用您想要的标题创建一个页面,然后重定向到您想要的页面。
    • 即使我尝试为我的网站制作动态标题以供 Facebook 检测到它失败并恢复为 www.site.com 作为标题。
    • Facebook 究竟从哪里获取标题?我的意思是,通常它会在 标签中获取标题;然而,如果你链接到一个特定的锚点(如<a href="/default/index/tourl?u=aHR0cDovL3d3dy5leGFtcGxlLmNvbS9mb28uaHRtbCNiYXI%3D" rel="nofollow" target="_blank">example.com/foo.html#bar</a>),它会在锚点附近获取一些内容。究竟如何?我问是因为我碰巧在锚点附近有一个 <script> 并且 Facebook 使用部分 javascript 代码作为标题! (太愚蠢了!)</script>
    【解决方案2】:

    我对title参数的解决方法是:

    作为 url,向页面 url 添加一个变量(如 real_title):

    http://www.facebook.com/sharer.php?u=http://mydomain.net/mypage?real_title=MyTitle

    然后,在index.php 页面中:

    < title> 
        <?php if (isset ($_GET['real_title'])) 
                 print ($_GET['real_title']);
              else 
                 print ("Default page title"); ?>
    < /title>
    

    【讨论】:

      【解决方案3】:

      Facebook 抓取给定的 URL 以搜索 Open Graph 元标记。如果这些标签存在,它会优先考虑这些标签的内容。以下是 Open Graph 标记的示例:

      <html xmlns="http://www.w3.org/1999/xhtml"
            xmlns:og="http://ogp.me/ns#"
            xmlns:fb="http://www.facebook.com/2008/fbml">
        <head>
          <title>The Rock (1996)</title>
          <meta property="og:title" content="The Rock"/>
          <meta property="og:type" content="movie"/>
          <meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/>
          <meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>
          <meta property="og:site_name" content="IMDb"/>
          <meta property="fb:admins" content="USER_ID"/>
          <meta property="og:description"
                content="A group of U.S. Marines, under command of
                         a renegade general, take over Alcatraz and
                         threaten San Francisco Bay with biological
                         weapons."/>
          ...
        </head>
        ...
      </html>
      

      更多信息http://developers.facebook.com/docs/opengraph/

      【讨论】:

        【解决方案4】:

        尝试 Facebook 订阅对话框 http://developers.facebook.com/docs/reference/dialogs/feed/ 使用直接 URL 示例

        【讨论】:

          【解决方案5】:

          我也遇到了这个问题,但是我发现了这个问题,因为我没有将 facebook 代码放在那个文件 http://bannedadsense.com/banned-adsense-list/isbanned 中,我对此非常愚蠢并且浪费了时间来修复,但现在我很幸运,我现在刚刚修复完成,只需将fb代码复制到所有要使用fb share like按钮的页面。

          <div id="fb-root"></div>
          <script>(function(d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8&appId=put_number_id_here";
            fjs.parentNode.insertBefore(js, fjs);
          }(document, 'script', 'facebook-jssdk'));</script>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多