2011-12-29 14 views
6

मैं कोडनिर्देशक के साथ PHP एसडीके का उपयोग कर फेसबुक लॉगिन लागू कर रहा हूं। मुझे फेसबुक लॉगिन पॉपअप मिल गया है, लॉग इन करें, लेकिन मैं उपयोगकर्ता की आईडी को पुनः प्राप्त करने में असमर्थ हूं - यह हमेशा 0फेसबुक getUser() रिटर्न 0

मैंने अपनी पुस्तकालय फ़ाइल में facebook.php और base_facebook.php फ़ाइलों को रखा है और इसे एक के रूप में शामिल किया है एक ट्यूटोरियल here के बाद कोडिनेटर में लाइब्रेरी।

क्या कोई मुझे बता सकता है कि वे क्या सोच रहे हैं?

देखें - - फेसबुक लॉगिन बटन

<div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : '<?php echo $this->config->item('facebook_app_id'); ?>', 
     status  : true, 
     cookie  : true, 
     xfbml  : true, 
     oauth  : true, 
     }); 

      FB.Event.subscribe('auth.login', function() { 
      window.location='<?php echo base_url(); ?>auth_other/fb_signin/'; 
      }); 

    }; 
    (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> 
    <div class="fb-login-button">Login with Facebook</div> 

नियंत्रक - auth_other/fb_signin

function fb_signin() 
    {   
     $fb_user = null; 

     $fb_config = array(
     'appId' => $this->config->item('facebook_app_id'), 
     'secret' => $this->config->item('facebook_app_secret') 
     ); 

     $this->load->library('facebook',$fb_config); 

     $fb_user = $this->facebook->getUser(); 


     echo $fb_user; 

उत्तर

-1

तो अनुप्रयोग डोमेन है वास्तविक डोमेन लेकिन साइट यूआरएल स्थानीय होस्ट है मैं निम्नलिखित कोड का उपयोग कर रहा , getUser फ़ंक्शन रिटर्न 0

+0

सही नहीं, ऊपर भी स्थानीय होस्ट के तहत काम करता है, तो आप के रूप में कैनवास यूआरएल से संकेत मिलता है "http: // localhost/मेरी-महान एप्लिकेशन /" और इसके बाद के संस्करण – dendini

0

ऐसी स्थिति में आया जहां getUser() था 0 जब यह वास्तव में नहीं होना चाहिए, तो आवेदन अभी भी सैंडबॉक्स किया गया था। उपयोगकर्ता को एप्लिकेशन के डेवलपर होने का अनुरोध स्वीकार नहीं किया गया है।

0

मुझे एक ही समस्या का सामना करना पड़ा है। मैंने एक उदाहरण प्रोजेक्ट का इस्तेमाल किया, और यह पता नहीं लगा सका कि यह 0 क्यों लौट रहा है। यहां लगभग सभी संबंधित लिंक आज़माए लेकिन किसी ने इसे हल नहीं किया।

समाधान प्रोजेक्ट में फेसबुक की एसडीके फ़ाइलों को अपडेट करना था। सरल और आसानी से मिस्ड,

0

मुझे एक ही समस्या थी, समस्या का पता लगाने की कोशिश करने के लंबे समय बाद, मुझे पता चला कि आपको उपयोगकर्ता आईडी प्राप्त करने के लिए टोकन तक पहुंच की आवश्यकता है। साइनइन_रेक्वेस्ट के टोकन को एक्सेस करने के लिए, उपयोगकर्ता को पहले एप को अनुमति देना होगा (अनुमतियां प्राप्त करने के लिए)। मुझे आशा है कि इससे

1

मैं इसी तरह के मुद्दे से फंस गया था, यहां समाधान है जो आपकी मदद कर सकता है।

$facebook = new Facebook(array(
    'appId' => 'xxxx', 
    'secret' => 'xxxxx', 
    "redirect_uri" => "set the uri to point to the same page" 
)); 

$user = $facebook->getUser(); 

if($user) 
{ 
//your task 
} else { 
header('location:'. $facebook->getLoginUrl()); 

} 

$user = $facebook->getUser(); 

if($user) 
{ 
//your task 
} else { 
header('location:'. $facebook->getLoginUrl()); 

}

+1

एप्लिकेशन डोमेन के तहत "स्थानीय होस्ट" कोड स्पष्टीकरण यह है कि यदि getUser() 0 देता है तो हमें $ facebook-> getLoginUrl() को उस पृष्ठ पर रीडायरेक्ट करने की आवश्यकता होती है जहां उपयोगकर्ता एप्लिकेशन स्वीकार करेगा और अनुमतियां प्राप्त करेगा, फिर उपयोगकर्ता यूज़र() प्राप्त करेगा यदि उपयोगकर्ता अन्यथा स्वीकार करता है फिर से 0 मिल जाएगा – dendini

संबंधित मुद्दे