如何为Facebook自定义操作创建不同的URL

时间:2012-12-10 05:51:27

标签: facebook facebook-graph-api facebook-javascript-sdk

我正在尝试在Facebook自定义动作帖子中添加自定义链接到[对象](在下面用红色标记)。

enter image description here

这是我的代码:

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:我不是垃圾邮件发送者,第三方网页来自客户,我并不想误导用户。

1 个答案:

答案 0 :(得分:1)

  

我认为这是一种hacky方法,用户可能无法接受。有没有更好的方法呢?

您可以执行服务器端重定向,检查用户代理 - 仅当指示是Facebook刮刀时,重定向客户端,否则让刮刀从中读取OG元信息你的页面。

如何检测FB刮刀:https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo