我们正试图制作文章阅读器,当用户阅读文章时发布。
我们面临的问题是文章网址不公开,因为我们需要确保阅读文章的用户应该登录到FB。
例如,我们的文章网址就像SERVER_NAME / article / view / ARTICLE_SLUG。
每当有任何新用户尝试点击此对象的帖子时,都会将其转到权限页面,一旦允许,就会显示该文章。但这个页面并没有被Facebook删除,因此没有发布。
我们尝试创建一个与登录无关的网址,例如SERVER_NAME / article / ARTICLE_SLUG,并在og:url中设置为SERVER_NAME / article / view / ARTICLE_SLUG,认为发布时会显示SERVER_NAME / article / view / ARTICLE_SLUG作为URL,但它没有发生。
有人可以建议最好的方法。
答案 0 :(得分:1)
当facebook废弃您的网页时,他们会使用非常具体的用户代理字符串:
facebookexternalhit / 1.1 (+ HTTP://www.facebook.com/externalhit_uatext.php)
你可以在“Facebook刮我的页面什么时候?”下的Like Button文档中阅读相关内容。部分。
当您收到请求时,请检查请求中的用户代理字符串,如果它与facebook剪贴板匹配,则允许该请求并返回仅包含meta和og标记的简单html。 由于facebook也会对结果进行缓存,因此它不应该每天发生多次,因为它说:
Facebook每24小时擦除一次页面以确保属性 最新。当Open Graph的管理员也会抓取该页面 页面单击Like按钮,并在URL输入时 Facebook URL Linter。 Facebook会在您的网址上观察缓存标头 - 它 将按优先顺序查看“Expires”和“Cache-Control”。 但是,即使你指定了更长的时间,Facebook也会刮掉你的 每24小时一次。
答案 1 :(得分:0)
假设您的文章可由登录用户在SERVER / article / view / SLUG(查看网址)中查看。您的主页链接到SERVER / article / SLUG(摘要URL )上文章的摘要视图,其中包含一个登录按钮,可以转到该视图URL。
您的应用会在视图网址上发布阅读操作,这些操作将不会被Facebook linter废弃。在这种情况下,您应该设计应用程序,以便新流量转到摘要URL,如果用户已登录,则会重定向到视图URL。摘要URL成为该文章对象的规范URL,您应该针对此URL发布操作,因为它将是公共的。
为此,请将元标记<og:url content="SERVER/article/SLUG" />
添加到两者视图网址和摘要网址元数据。