【问题标题】:Facebook Share URL having hashFacebook Share URL 有哈希
【发布时间】:2015-06-18 12:01:21
【问题描述】:

我的单页网站有一些产品,点击时产品详情显示为简单的弹出窗口。每个产品都有 Facebook 分享。但是,当我在 Facebook 上分享网址时,在分享的网址中说 www.example.com#product1#product1 会被剥夺。

FB.ui({
  method: 'share',
  href: 'http://example.com/#product1',
}, function(response){});

当我分享它时,它只是 http://example.com/,而不是 http://example.com/#product1。我希望像http://example.com/#product1 一样共享完整的 URL。它以某种方式被剥离。

如何避免这种情况?

【问题讨论】:

  • 请提供一段代码。
  • 您需要为要共享的每条单独的内容提供单独的 URL。 (不同的散列不会使它们成为不同的 URL;散列是纯粹的客户端构造。)
  • @sasha:我认为我不需要代码来解释。当我在 facebook 中分享 url 时,我需要这样的 www.example.com#product1 。但这只是 www.example.com 。 #product1 在 Facebook 上分享时会被删除。
  • @CBroe : 我可以让#product1 以某种方式出现在共享 URL 中还是 facebook 不允许这样做?
  • 如果您在 Facebook 上共享带有片段标识符的 URL(# 之后的部分),那么 Facebook 会保留它。我不知道为什么其他 cmets 不这样说,也许他们已经过时了?

标签: facebook url share


【解决方案1】:

就像 CBroe 提到的那样,Facebook 索引 URL,# 不被视为 URL 的一部分。

一种解决方案是改用“hashbang”#! 表示法。 Facebook 遵循Google Ajax Specification 允许索引,在这种情况下,Ajax 网站。

效果是http://www.example.com/#!/product1 将被重写,而对您服务器的查询变为http://www.example.com/?_escaped_fragment_=/product1。反过来,您可以在您的服务器上捕捉到它,并使用专门针对该产品的页面进行回复。

您可以在此处阅读更详细的答案:https://stackoverflow.com/a/15024853/561485

最重要的部分是您的网站应该能够为每个产品提供专门的页面;如果您只有索引页面,则使用 # 表示法将始终共享相同的 url。

【讨论】:

  • 如果您在 Facebook 上共享带有片段标识符(# 后面的部分)的 URL,那么 Facebook 会保留它。
【解决方案2】:

现在 Facebook 和 Twitter 不允许共享包含 # 标签的 URL。但是,您可以使用 %23 而不是 # 来共享 URL

<a class="twitter-share" href="https://twitter.com/intent/tweet?url=http://www.goparties.com/%23/party/{{id}}" target="_blank">

【讨论】:

  • 如果您在 Facebook 上共享带有片段标识符(# 后面的部分)的 URL,那么 Facebook 会保留它。
  • 它对我不起作用。我的想法完全一样,但遗憾的是这不是办法:(
【解决方案3】:

根据需要和实现方式,可以使用 goo.gl API 生成唯一的可共享链接。

两种实现方式如下: 1. 手动,只需转到 goo.gl 并发布您的完整链接,包括#hash_tag(它将通过 Facebook 共享) 2. 使用 API 进行自动共享任务...例如应用程序等,使用 goo.gl url 更短的 API。

【讨论】:

    【解决方案4】:

    你也可以用encodeURIComponent转义网址

    FB.ui({
      method: 'share',
      href: encodeURIComponent('http://example.com/#product1'),
    }, function(response){});
    

    【讨论】:

      【解决方案5】:

      分享对话框现在支持标签参数

        FB.ui({
          method: 'share',
          href: 'https://developers.facebook.com/docs/',
          hashtag: '#facebook'
        }, function(response){});
      

      查看 fb 文档: https://developers.facebook.com/docs/sharing/reference/share-dialog/

      【讨论】:

        猜你喜欢
        • 2012-05-28
        • 1970-01-01
        • 2014-01-30
        • 2011-12-13
        • 2017-05-30
        • 2014-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多