【问题标题】:Dialog feed not redirecting after proccess对话提要在处理后未重定向
【发布时间】:2011-12-25 20:55:37
【问题描述】:

我正在开发简单的 facebook 画布应用程序。我在文档中关注此页面:http://developers.facebook.com/docs/appsonfacebook/tutorial/

在我的应用中,我想鼓励用户分享它,所以我尝试根据这个(第一个 javascript 示例)制作一个提要对话框:http://developers.facebook.com/docs/reference/dialogs/feed/

我可以分享链接,但点击分享或取消后没有任何反应。我已经定义了 redirect_uri 参数,它与应用设置中定义的域 URI 相同。奇怪的是,如果我单击关闭按钮 (X),redirect_uri 中的页面会加载到 iframe 对话框灯箱内。

任何想法,应该是哪里的问题?长时间谷歌搜索导致没有结果:/

【问题讨论】:

    标签: facebook dialog feed


    【解决方案1】:

    根据文档,redirect_uri 仅适用于当有人单击取消(或关闭对话框而不共享)时。如果他们共享,我无法从他们的文档中看出它的去向。但是,iframed 对话框将页面嵌套到其中的情况非常奇怪。我的第一直觉是应用程序设置中有一些不正确的地方。确保您指定了 Facebook 应用的 http 和 https 版本。

    【讨论】:

    • 感谢您的回答。根据文档,我认为每次单击按钮后都应该使用 redirect_url 。 (“用户单击对话框上的按钮后重定向到的 URL。”)但这不是最大的问题。至于应用程序设置:我无法使用真正的 https 访问服务器,只能使用会引发丑陋错误的自签名证书。这应该是一个问题吗?在没有付费证书的情况下使用 Web 服务器时是否有一些解决方法?
    • 您现在需要拥有一个真正的 https 站点。我认为这只能通过付费证书来完成。如果不是,那么互联网真的有问题,我永远不会相信再次访问 https 网站......
    • 是的,我知道没有证书就无法模拟 https :) 但我的意思是 facebook 上的一些解决方法不需要你的画布应用页面的 https 连接。不过,感谢您的回答,现在我怀疑缺少 https 是问题所在,并尝试通过一些 facebook 云服务合作伙伴进行托管,这似乎是解决方案,而且对于小型应用程序似乎也是免费的。
    【解决方案2】:

    它与 facebook 提要对话中可用的代码相同。如果取消使用'#'作为redirect_uri,我将其更改为采用我的应用程序要求并打开灯箱,否则我使用响应功能将document.location移动到thankyou页面,希望它可以帮助您解决问题。

    <script src='http://connect.facebook.net/en_US/all.js'></script>
    <script> 
      FB.init({appId: "<?=$config['appId'];?>", status: true, cookie: true});
    
      function postToFeed() {
        // calling the API ...
        var obj = {
          method: 'feed',
          redirect_uri: '#',
          link: 'https://www.facebook.com/MyPageName/app_<?=$config['appId'];?>',
          picture: 'https://www.abc.com/fbapp/img/welcome.jpg',
          to: friendId,// js variable I am fetching from radio button selection
          name: 'App Blah Blah',
          caption: 'your_caption',
          description: 'your_description'
        };
    
        function callback(response) {
    // I commented out message print in div
    //          document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
    
    // check weither feedback is valid
            if(typeof(response)!='undefined'){
                document.location = 'thankyou.php';
            }
        }
    
        FB.ui(obj, callback);
      }
    
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      相关资源
      最近更新 更多