0

我在使用 facebook javascript 客户端应用程序授权时遇到问题。当应用程序未授权时,以下代码按预期工作,出现应用程序授权弹出窗口。当相同的代码在 codeignigter 中运行时,授权对话框无法出现。

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

  // Init the SDK upon load
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '169550646480230', // App ID
      channelUrl : '//'+window.location.hostname+'/channel', // Path to your Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });
4

2 回答 2

0

这可能是由于两件事(我在这里做假设):

  1. CSRF 已启用并阻止来自 Facebook 的外部响应
  2. 由于无效的 URI 字符,来自 FB 的响应被过滤掉。

首先禁用 CSRF,并检查它是否有效,这将是我的起点。

于 2012-04-17T14:12:39.750 回答
0

想出了这个。

在 Javascript 身份验证之前运行的任何 PHP facebook 调用都会在服务器上生成异常并停止所有 HTML 活动。我猜它被称为异步是有原因的。

于 2012-04-18T18:52:54.150 回答