1

请参阅以下我用于 Facebook Open Graph 的代码:

<meta property="fb:app_id" content="XXXXX" /> 
<meta property="og:type"   content="collection" /> 
<meta property="og:url"    content="http://XXXXXXXXXXXXX/" /> 
<meta property="og:title"  content="" /> 
<meta property="og:image"  content="http://XXXXXXXXXXXXXXXXXXXXXXXXXX.jpeg"/>

<script type="text/javascript">
    function postCook() {

        var parameters = new Array();
        parameters["og:title"] = "some_text";

        FB.api(
            'me/<namespace>:<wwwww>',
            'post', {
            collection: 'http://XXXXXXXXXXXXXXXXX/'
        },

        function(response) {

            //alert(response.responseText);
            console.log(response);

            if (!response || response.error) {
                alert('Error occured');
            } else {
                alert('Other22 was successful! Action ID: ' + response.id);
            }
        });
    }
</script>

在这里,我想传递og:title和其他一些参数,而不是在元标记中使用。有什么方法可以在 FB.api 中传递更多参数?

谢谢。

4

2 回答 2

2

虽然我对此可能是错误的(因为 Facebook 无情地改变了他们的 API),但他们不允许您传递任何自定义标签信息,因为它可能被用来歪曲信息。

相反,一旦发布操作命中 Facebook,Facebook 将立即抓取传入的 url,并抓取它可以找到的所有元数据,优先考虑任何打开的图形标签,然后再回退到其他传统的元信息检索方法(标题标签、抓取正文等)。

一种可能的“解决方法”是将“回声”网址而不是目标网址本身传递给 Facebook。但是,这取决于您使用服务器端解决方案,因为我不相信您可以使用 JS SDK 做到这一点。

即,不要将http://www.foobar.com传递给 facebook,而是传递http://www.barbaz.com/echo.php?title=your%20custom%2otitle&description=etcetc&url=myurl

根据需要调整 url 参数,它们将echo.php$_GET. echo.php 然后将包含 Facebook 读取的开放图形标签,然后通过 javascript 将用户重定向到正确的 URL。Facebook 的抓取工具不会遵循 javascript 重定向。

回声.php:

<html>
    <head>
        <meta property="og:title" value="<?=$_GET['title']?>">
    </head>
    <body>
        <script>
            window.location.href = '<?=$_GET['url']?>';
        </script>
    </body>
</html>

或者,您可以在 echo.php 顶部检查 facebook 的用户代理字符串,并使用 将任何非点击重定向到正确的 url header();,并且只为 facebook bot 呈现反弹页面。

于 2013-03-15T13:44:48.473 回答
0

在这里,我想传递 og:title 和其他一些参数,而不是在元标记中使用。

这不是 Open Graph 对象的工作方式。

URL 标识对象,并且任何数据都必须在此 URL 提供的 HTML 代码中。

于 2013-03-15T13:44:10.820 回答