-1

创建 Facebook 应用程序后,将其留在沙盒中并尝试使用 Feed 对话框设置共享按钮,似乎只有我添加为管理员的 FB 帐户才能使用共享按钮 - 所有其他非管理员都能够看到Feed 对话框弹出窗口,但随后看到“发生错误,请重试。”。

我认为这是特定于浏览器的问题,但似乎取决于您的 FB 帐户与应用程序的关系。一个非管理员的人一直在测试应用程序并且根本无法共享。

我使用 Wordpress 作为这个应用程序的 CMS 后端。据我所知,App ID 和 App URL 都是正确的,唯一的区别是在我的开发环境中,一旦一切正常,它将被移动到客户端生产 FB 页面。

如果您是该页面的管理员,我觉得它工作得非常好,这很奇怪。这可能只是一个沙盒的事情吗?

我还检查了在以页面而不是您自己的身份登录时尝试使用共享按钮是问题所在,而事实并非如此(如果有人想知道的话)。

我相信我正确使用了 SDK/API 和 Feed Dialog,但我的代码供参考:

头文件.php

<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
  // Called when FB SDK has been loaded
  window.fbAsyncInit = function () {   
    // Auto resize FB Canvas
    FB.Canvas.setSize({height:600});
    setTimeout("FB.Canvas.setAutoGrow()",500);
  };

  // Load the FB SDK Asynchronously
  (function (d) {
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    d.getElementsByTagName('head')[0].appendChild(js);
  } (document));
</script>

页脚.php

<script type="text/javascript">
    FB.init({
        appId: '515010801895800',
        status: true,
        cookie: true,
        xfbml: true
    });

    function postToFeed() {
        var obj = {
            method: 'feed',
            display: 'popup',
            picture: '<?php echo get_template_directory_uri(); ?>/images/app/app-icon-75.png',
            name: 'Suncorp Brighter Futures Heroes',
            caption: '',
            link: 'https://www.facebook.com/aaronlepikdev/app_515010801895800',
            description: 'Suncorp Brighter Futures Heroes is a place where our people come together to share their stories, raise money, volunteer and apply for grants for causes close to their hearts.',
            actions: {name: 'Suncorp Brighter Futures Heroes', link: 'https://www.facebook.com/aaronlepikdev/app_515010801895800'}
        };

        function callback(response) {
            document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
        }

        FB.ui(obj, callback);
    }       
</script>

任何帮助都非常感谢。

4

1 回答 1

3

看来我确实可能已经回答了我自己的问题 - 我已经删除了 Sandbox,它似乎正在工作。我确实偶然发现了这一点:沙盒模式 - 请注意,当您的应用程序处于沙盒模式时,您不能代表看不到您的应用程序的用户调用任何 API 调用。

于 2013-05-23T10:48:13.430 回答