【问题标题】:Issues with Facebook and Symfony 1.4Facebook 和 Symfony 1.4 的问题
【发布时间】:2012-02-14 16:53:52
【问题描述】:

新的 Facebook 和 Symfony 1.4 开发人员有几个问题。

首先,我在让“添加到时间线”按钮出现在我需要的页面上时遇到问题。我的网站似乎显示了 Facebook 加载图像,然后在明显加载后没有显示任何按钮。我浏览了许多不同的站点(包括 Open Graph 的 FB 教程),都说将脚本放在开始的正文标记之后。我已将它放在我的 layout.php 文件中,这样我就不必将它放在多个位置:

layout.php

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#">
....
<body>
    <div id="fb-root"></div>
    <script>
        window.fbAsyncInit = function() {
            FB.init({
                appId      : 'APP_ID',
                status     : true, 
                cookie     : true,
                xfbml      : true,
                oauth      : true
            });
        };

        (function(d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=APP_ID";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    </script>
    <div id="container">

我已经在适当的地方替换了 APP_ID 并将“添加到时间线”按钮放在视图中:

viewSuccess.php

<?php // Facebook Post-to-Timeline Button for this user's created recipe ?>
<?php if($recipe->getUserId() == sfUserTools::getConnectedUser()->getId()): ?>
    <fb:add-to-timeline show-faces="false" mode="button"></fb:add-to-timeline>
<?php endif ?>

我不确定这是否与 JSSDK 脚本的放置位置有关,或者 Symfony 是否在视图页面中没有看到某些内容。请注意,我还没有为 Open Graph 设置我们的应用程序的操作和对象,此时发布到时间线不是我关心的问题。对新手有什么想法或建议吗?

【问题讨论】:

  • 有人有什么想法或建议吗?可能是因为 Symfony 被设置到不同的模块而不是一个页面,我需要将 JSSDK 添加到按钮所在的每个页面?

标签: facebook symfony-1.4 facebook-timeline


【解决方案1】:

您是否尝试在 FB.init 上传递 access_token 或权限?

  FB.init({
    appId                : "<?php echo sfConfig::get('app_facebook_api_key') ?>",
    status               : true, // check login status
    cookie               : true, // enable cookies to allow the server to access the session
    xfbml                : false,  // parse XFBML
    perms                : 'read_stream, publish_stream',
    access_token         : "ACCESS_TOKEN_HERE",
    frictionlessRequests : true
  });

【讨论】:

  • 请小心,因为此按钮将于 2012 年 8 月弃用。文档:developers.facebook.com/roadmap/#august-2012 我们将删除“添加到时间线”插件。如果您要嵌入 Add to Timeline 插件,我们将在其位置呈现登录按钮,并自动将 publish_actions 权限添加到 scope 参数。
猜你喜欢
  • 2013-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
相关资源
最近更新 更多