【问题标题】:What is going on with my Facebook sharing solution (and my google plus share solution)?我的 Facebook 共享解决方案(以及我的 google plus 共享解决方案)发生了什么?
【发布时间】:2014-05-29 20:37:14
【问题描述】:

请先阅读以下免责声明:在过去一个小时左右的时间里,我已尽一切努力解决这个问题。谷歌,实验,搜索stackoverflow等。我一直无法解决这个问题。它可能被某些人或许多人认为是“重复”,但我想澄清我的努力,以便任何关于这是重复的指控至少希望是公平的。谢谢。

我正在使用以下临时 URL 处理网站:

http://jrltest.host-ed.me/index.html

我使用每个社交媒体的“手动”或“自定义”共享解决方案为共享按钮(右上角)开发了一个 JS 解决方案。也就是说,允许我在“共享”链接中键入我想共享的 URL 的解决方案。我的网站使用 SSI,共享按钮是“包含”文件之一,因此手动输入 URL 甚至不是可能的解决方案,因为每个社交媒体平台只有一个共享按钮。然而,即使共享按钮在每个页面上,它仍然不是一个可行的解决方案。我整理了以下js文件:

http://jrltest.host-ed.me/_js/share.js

这只是将一个变量分配给 document.URL 和 document.title,然后我可以根据需要将这些变量插入到自定义 URL 中。

不过,我遇到了一些奇怪的问题,我无法同时使用 FB 和 Google Plus 分享按钮。 twitter 按钮是唯一一个完全符合预期的按钮。我将用数字来概述以下问题。

1:Facebook 问题。访问以下 URL:http://jrltest.host-ed.me/index.html 并单击 FB 分享按钮时,会打开一个弹出框并显示标题为“James River Laser & Equipment Home”。但是,我当前的主页标题是“James River Laser and Equipment Home”。以前的标题是“James River Laser & Equipment Home”,然而,twitter URL 使用“&”符号来分隔它们的参数,并切断了“&”之后的所有内容。然而,我不知道它是从哪里得到这个标题的,因为它已经改变了。但是,如果您访问“关于”页面,则 FB 共享按钮会显示“无标题文档”作为要共享的页面的标题。而且我确实在关于页面上指定了正确的标题。

2:Facebook 问题。以下问题与问题编号 1 相关,但是,它是尝试修复第一个问题的结果。我发现(感谢我发现的一个 stackoverflow 问题)除了自定义 URL 之外,我还可以传入自定义标题。所以我将我的 FB 分享 URL 修改为以下内容:

https://www.facebook.com/sharer.php?u="+currentURL+"?t="+currentTitle

当我使用此 URL 时,主页显示“document.title”作为标题,但“关于”页面显示“关于我们公司”作为标题。我什至无法猜测为什么它适用于“关于”页面,但不适用于“主页”。它们都有一个正确的标题,如果我打开控制台并输入“document.title”,它会返回预期的“James River Laser and Equipment Home”......但它仍然在FB弹窗。

3:Google Plus 问题。访问以下 URL:http://jrltest.host-ed.me/index.html 并单击 GPlus 共享按钮时,会打开一个弹出框并将标题显示为“James River Laser & Equipment HomeHeaderShare Our PageFooter”。这是不寻常的,也有点令人困惑。今天早些时候和以前,我的 SSI 页面是 HTML 文档,包含头部标签、标题标签、正文标签,所有内容。我给这些页面的标题与它们的内容相关。 “标题”是我的菜单标题的标题,“分享我们的页面”是我的社交分享部分的标题,“页脚”是底部页脚的标题。但是,我已经从这些文档中删除了除内容和内容标签(div 和 li 等)之外的所有内容,但 Google plus 仍然显示这样的描述。然而,更奇怪的是,如果您访问以下 URL 的主页:http://jrltest.host-ed.me 并单击 GPlus 分享按钮,它现在只显示“James River Laser & Equipment Home”作为标题。哪个更好,但我仍然不知道它是从哪里得到的,因为页面标题是“James River Laser and Equipment Home”。

我意识到我正在使用的 Facebook 共享器已贬值,但我还没有弄清楚 Facebook 提供的替代解决方案。他们一直在谈论应用程序(即使我在网络上点击使用),没有什么解释得足够让我技能有限的人理解。

我仍在研究这个问题,试图自己解决这个问题,就像我一直做的那样,但我觉得我无法独自完成这件事。所以我希望有人知道发生了什么事,并且可以给我介绍一下。

非常感谢!

【问题讨论】:

  • 无法在运行时动态设置额外的 FB 共享参数 - 共享对话框将要共享的对象的 URL 作为其 only 参数,并且所有其他值都是从该 URL 获取的。
  • developers.facebook.com/tools/debug/og/… 将标题显示为About Our Companyfacebook.com/sharer/… 也是如此……如果您的结果不同,那么这可能是您之前尝试的缓存问题或其他原因。 facebook.com/sharer/… 但是 not 显示不同的标题,但仍然 About Our Company ... 因为,正如我告诉你的,FB 现在忽略了这些附加参数。
  • 你说你用来尝试并将标题传递给 Facebook 的地址在技术上也是错误的:https://www.facebook.com/sharer.php?u="+currentURL+"?t="+currentTitle - 问号仅用于开始查询字符串,在此之后,附加的参数=值对与第一个由 & 号分隔。
  • 这真是令人沮丧。我之前测试了多次,结果都是一致的,这就是我如此自信的原因。但我可以承认我错了,我道歉。然而,它仍然表现得很奇怪,但它一定是一些缓存问题。就在几分钟前,当我玩它时,它正确显示了标题“James River Laser and Equipment”,但现在又显示“document.title”。我马上把那个元标签拿出来了。请以答案的形式回复,以便我可以为您提供适当的帮助。谢谢!
  • 不用担心 :-) 我知道这样的事情可能会令人沮丧,当这种情况发生时,耐心可能会有点短。 (我也这样做了,所以让我也道歉。)

标签: javascript html facebook


【解决方案1】:

所以,回顾一下:

除了要在 Facebook 上分享的页面的 URL 之外,再传递其他任何内容都不再可能了——那是前一段时间的事了,但他们删除了它,现在标题、描述、图像等都从文档本身中提取出来了.
最好通过 Open Graph 元元素(http://ogp.me/https://developers.facebook.com/docs/plugins/checklist/)设置它们,但如果找不到,Facebook 将直接从 HTML 中获取信息——通过查看 title 元素,a(不是Open Graph-specific)描述元元素,嵌入的图像等。

在测试和更改值时缓存可能是一个问题——但是通过使用他们的debug tool,您可以看到 Facebook 当前在您的页面上看到的信息,可能存在哪些“错误” Open Graph-wise ...也会清除他们对文档的缓存。

除了缓存问题之外,您在测试期间的问题似乎来自文档中的错误信息(<meta property="og:title" content=document.title /> 导致 document.title 显示为文档标题),以及对 t 参数效果的误解传递给对话框(如上所述不再起作用)。


如果您的 G+ 分享仍有问题,他们也有一个测试工具:http://www.google.com/webmasters/tools/richsnippets

【讨论】:

  • 太棒了,谢谢!我不知道这些测试工具,它们将是无价的,因为缓存问题似乎非常顽固(并且给我带来了很多沮丧和困惑哈哈)。再次感谢您,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 2011-01-10
  • 2013-09-24
  • 1970-01-01
  • 2016-11-01
相关资源
最近更新 更多