2012-03-14 12 views
0

私のアプリはFacebookを使ってログインしています。だから私は、セットアップログインボタンは、このような何かのJavascript SDKを呼び出すには:

$('.fblogin').click(function(){ 
    FB.login(function(response) { 
     if (response.authResponse) { 
     //call jquery ajax to user/login_facebook method (I'm using CI) 
     } 
    }, {scope: 'email,user_birthday,publish_stream'}); 

}); 

し、ユーザーのコントローラで私login_facebook方法では、私は単にテストのためにこれを呼び出します。

$me = $this->facebook->api('/me'); 
print_r($me); 

この呼び出しは非常に遅いようです。 Firebug経由で分析したところ、ajaxコールはしばらく実行された後、500 Internal Server Errorメッセージが返されました。しかし、user/login_facebookは実際には存在します。私がこれを呼び出すかのように、それは正常に動作します。

echo "works";exit; 
$me = $this->facebook->api('/me'); 
print_r($me); 

私は、ページの負荷が非常に遅く、直接ユーザー/ login_facebookを呼び出そうとブランクになり、時にはそれが(遅いロードが)動作し、配列を表示します。

ここに何か不足していますか? localhostでは完璧に動作しますが、ホスト(VPS)にアップロードすると、このようになります。答えをありがとう。

答えて

0

FB.initにcookie: trueを指定していますか?おそらくPHP側では、クッキーを使用していないので、もう一度認証が行われますか?また、チャンネルファイルとキャッシングを使用することをお勧めします。これらはすべてthe Facebook developers docs for the jdkに記載されています。最後に、localhostで高速でVPSが遅い場合は、問題を切り分ける必要があるかもしれません。あなたのVPSのネットワークはちょうど遅いかもしれません。

+0

はい、私は、設定されたCookieのために正常に動作します:真FB.initに。私はチャンネルとキャッシングを使ってみるつもりですが、混乱するのは、同じドメイン(別のディレクトリ)でFacebook Connectを使用する別のアプリがあり、それは問題なく動作します。 – Henson

+0

これは、問題を特定するのに最適な形になります。 2つのディレクトリのコードの違いは何ですか?違いを取り除き始めると、それを原因に絞り込むことができます。 –

0

非常に奇妙な、しかし、これは私

$token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' 
       . 'YOUR_API_KEY' . '&redirect_uri=' . urlencode('YOUR_APP_URL') 
       . '&client_secret=' . 'YOUR_APP_SECRETE'; 
     //. '&code=' . $code; 
     $access_token = $facebook->getAccessToken(); 

// Run fql query 
     $fql_query_url = 'https://graph.facebook.com/'  
       . $facebook->getUser() 
       . '&' . $access_token; 
     $fql_query_result = file_get_contents($fql_query_url); 
     //$fql_query_result = $iframeadv->curl($fql_query_url); 
     $fql_query_obj = json_decode($fql_query_result, true);