我正在尝试在Facebook自定义动作帖子中添加自定义链接到[对象](在下面用红色标记)。
这是我的代码:
FB.api('/me/testapponens:cook', 'post',
{ recipe: 'http://foobar.com/page1.html' },
function(response) {
if (!response || response.error) {
alert('Error occured');
} else {
alert('Cook was successful! Action ID: ' + response.id);
}
});
现在,因为我已在“食谱”中说明了“http://foobar.com/page1.html
”,所以在发布时,会从此页面中选择开放图表属性。
问题:我需要将链接显示为第三方链接www.thirdparty.com/page1.html,但无法在thirdparty.com/page1.html中创建开放图元属性(如我对该页面没有任何控制权。)
所以,我决定这样做:
i) Create a dummy page : www.foobar.com/page1.html.
ii) Add all the og meta to it.
iii) Add a redirect (javascript) code to the dummy page so that it goes to the third party page.
www.foobar.com/page1.html
看起来像这样:
<html ...>
<title> Page 1 </title>
<meta property="fb:app_id" content="..." />
...
<script type="text/javascript">
function redirect1()
{
window.location = "http://thirdparty.com/page1.html"
}
</script>
</head>
<body onLoad="redirect1()"></body>
</html>
问题:我认为这是一种hacky方法,用户可能无法接受。有没有更好的方法呢?如果我无法解释我打算做什么,请告诉我。
PS:我不是垃圾邮件发送者,第三方网页来自客户,我并不想误导用户。
答案 0 :(得分:1)
我认为这是一种hacky方法,用户可能无法接受。有没有更好的方法呢?
您可以执行服务器端重定向,检查用户代理 - 仅当不指示是Facebook刮刀时,重定向客户端,否则让刮刀从中读取OG元信息你的页面。
如何检测FB刮刀:https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo