不能使用FB Open Graph在对象上发布操作

时间:2012-05-03 09:13:45

标签: facebook facebook-graph-api opengraph facebook-opengraph

我们正试图制作文章阅读器,当用户阅读文章时发布。

我们面临的问题是文章网址不公开,因为我们需要确保阅读文章的用户应该登录到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,但它没有发生。

有人可以建议最好的方法。

2 个答案:

答案 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" />添加到两者视图网址和摘要网址元数据。