【问题标题】:Facebook Share Feed Dialog only working for AdminsFacebook Share Feed 对话框仅适用于管理员
【发布时间】:2013-05-21 12:20:40
【问题描述】:

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

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

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

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

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

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

header.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>

非常感谢任何帮助。

【问题讨论】:

  • “有没有可能这只是沙盒的事情?” – 你能尝试通过简单地禁用沙盒模式来自己回答这些问题吗……?
  • 看来我确实可能已经回答了我自己的问题 - 我已经删除了 Sandbox,它似乎正在工作。任何人都知道这是否在任何地方的文档中?我确实偶然发现了这一点:沙盒模式 - 请注意,当您的应用处于沙盒模式时,您不能代表看不到您的应用的用户调用任何 API。
  • @aaronl 这就是沙盒的用途,现在只需添加相同的答案并接受它。在发布问题之前做一些研究。另外对于文档看看here
  • +1:您的问题很有帮助。我只是通过尝试添加共享链接来关注 facebook 的文档,甚至还没有听说过沙盒模式。感谢您发布和回答。

标签: facebook dialog share feed


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多