使用facebook javascript sdk时无效重定向uri

时间:2012-01-05 17:37:12

标签: facebook

我的频道网址设为

channelUrl : '//www.example.com/xyx/channel.html'

channel.html的内容是

<script src="//connect.facebook.net/en_US/all.js"></script>

我的网站网址设置如下

http://www.example.com/xyz/

我已将以下代码存储在 common.js 中,并将此javascript文件添加到 紧接着打开身体标签。

  window.fbAsyncInit = function() {
        FB.init({
          appId      : 'XXXXXXX', // App ID
         channelUrl : '//www.example.com/xyz/channel.html', // Channel File    
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
        });

        // Additional initialization code here
      };

      // Load the SDK Asynchronously
      (function(d){
         var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
          var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
       }(document));

完成所有这些操作后,当我打开www.example.com/xyz并点击Facebook登录按钮时 我在弹出窗口中收到以下错误,是否有人有解决方案?

我搜索了许多帖子但没有运气

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration.

2 个答案:

答案 0 :(得分:0)

如果您选中此link,则会发现与您相同的错误。所有修复都表明您从Facebook App页面错误配置了您的应用程序。

答案 1 :(得分:0)

我使用JavaScript SDK在Internet Explorer中遇到了类似的问题。我有一个像这样定义的设置数组:

    var _facebookSettings = {
        appId: '@Model.Facebook.AppId', // App ID
        channelUrl:'//@Request.ServerVariables["SERVER_NAME"]/js/channel', // Channel File
        status: true, // check login status
        cookie: true, // enable cookies to allow the server to access the session
        xfbml: true,  // parse XFBML
        oauth: true,
        scope: '@Model.Facebook.Scope'
    };

然后我修改了我的channelUrl定义,如下所示:

channelUrl:document.location.protocol +'// @ Request.ServerVariables [“SERVER_NAME”] / js / channel'

请注意在频道URL定义之前添加了“document.location.protocol”。此修复程序解决了我的问题,我不再收到该错误。