2016-07-31 36 views
1

我将我的Blogger用作SPA网站。用户可以将帖子分享到Facebook。 每个帖子在请求URL中由?id = {posts_id}相同,{post_id}由Javascript解析,并从JSON数据中查找帖子。Blogger在meta标签中显示当前完整网址

但Facebook共享爬行程序不支持SPA站点读取其og:标签。 因此,我们需要使用Facebook Crawler从另一个URL中读取og:标签。

我尝试了很多方法来使Blogger响应HTML与href =“”包含完整请求的URL。

这是我的尝试:完整网址是:www.abc.com/2016/07/31.html?id=1

<link expr:href='data:blog.url' rel='opengraph'/> 
Will generate with HTML 
    <link href='www.abc.com/2016/07/31.html' rel='opengraph'/> 

有没有什么办法让博客显示完整请求的URL,从HTML响应代码?

感谢提前

回答

0

如果您正在使用由Blogger发布了新的主题(参见this)。然后你可以用下面的代码来实现你需要的东西 -

<b:if cond='data:view.isPost'> 
    <link expr:href='data:blog.url + "?id=" + data:view.postId' rel='opengraph'/> 
</b:if> 

,这将产生形式的URL -

www.abc.com/2016/07/post-title.html?id=PostID 

PostID将是唯一的ID博客分配给每个岗位。这将只在邮政页面上呈现。

为了使静态网页这项工作,添加以下代码,以及到模板 - 利用页面ID

<b:if cond='data:view.isPage'> 
    <link expr:href='data:blog.url + "?id=" + data:view.pageId' rel='opengraph'/> 
</b:if> 

要抓取网页内容的数据,发送到以下端点的请求 -

https://www.blogger.com/feeds/BlogID/pages/default/PageID?alt=json 

更换BlogIDPageID与实际值