2011-08-08 20 views
11

तो php 3.0 sdk को अपडेट करने के बाद और क्या नहीं, मेरा FB.login() फ़ंक्शन अब उन अनुमतियों के लिए नहीं पूछता है जिन्हें मैंने पूछने के लिए सेट किया है। किसी और को यह मिल रहा है? यहां आपके लिए कुछ कोड है:फेसबुक (एफबी.ब्लॉगिन) मेरी अनुमतियों का अनुरोध नहीं कर रहा है

window.fbAsyncInit = function() { 
    FB.init({ 
    appId: 'xxx', 
    status: true, 
    cookie: true, 
    xfbml: true, 
    oauth : true // enables OAuth 2.0 
    }); 
    // whenever the user logs in, we refresh the page 
    //FB.Event.subscribe('auth.login', function() { 
    // window.location.reload(); 
    //});  
}; 


FB.login(function(response) { 
    if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     FB.logout(function(response) { 
     console.log('Logged out.'); 
     }); 
    }); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}, {scope:'read_stream,publish_stream,offline_access'}); 

तरह से मैं यह तक पहुँचने के लिए कोशिश कर रहा हूँ, एक onClick="FB.login();" माध्यम से है। क्या कोई मदद कर सकता है?

+0

क्या आपने इस समस्या को हल करने का प्रबंधन किया है? – Future2020

उत्तर

5

जे एस एसडीके मैंने पाया कि वे अभी भी perms और नहीं गुंजाइश का उपयोग के रूप में यह दस्तावेज यह के स्रोत की जांच कर रहा। यह मेरे लिए काम कर रहा है:

...onclick="FB.login(handleLoginResponse, {perms:'email,manage_pages,user_birthday'});return false;"...

मुझे आशा है कि यह मदद करता है।

+4

सिर्फ एक सिर ऊपर है कि यह जानकारी पुरानी है। इसे आज़माएं और आपको "असहज त्रुटि मिलेगी: OAuth2 विनिर्देश बताता है कि 'परमिट' को अब 'स्कोप' कहा जाना चाहिए। कृपया अपडेट करें।" –

+1

माइकल उपरोक्त में सही है: 'स्कोप' का उपयोग किया जाना है। – Tibor

+0

काम नहीं करेगा, न ही परमिट के साथ और न ही स्कोप के साथ –

4

मैं जेएस एसडीके के साथ इससे संबंधित कुछ देखता हूं। जब oauth=true की स्थापना, समारोह

FB.login(function (response) { 
    if (response.authResponse) { 
     console.log('Welcome! Fetching your information.... '); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
} 
}, { scope: 'email,publish_stream,user_birthday,user_location' }); 

सही ढंग से बढ़ाया अनुमतियों का अनुरोध करता है, लेकिन scope="email,publish_stream,user_birthday,user_location" साथ <fb:login-button>FBXML नहीं है का उपयोग कर।

यह मेरे लिए एक फेसबुक बग की तरह दिखता है ...

1

मुझे लगता है कि इसकी वजह से आप FB.login ब्लॉक के भीतर FB.logout बुला रहे हैं।

प्रभावी रूप से क्या होता है जैसे ही वे लॉग इन करते हैं, वे लॉग आउट होते हैं।

तो यह अलग इस तरह:

// CALLED WHEN USER LOGS IN 
function userLogin() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      console.log('Welcome! Fetching your information.... '); 
      FB.api('/me', function(response) { 
       console.log('Good to see you, ' + response.name + '.'); 
      }); 
     } else { 
      console.log('User cancelled login or did not fully authorize.'); 
     } 
    }, {scope:'read_stream,publish_stream,offline_access'}); 
} 

// CALLED WHEN USER LOGS OUT 
function userLogout() { 
    FB.logout(function(response) { 
     console.log('Logged out.'); 
    }); 
} 
0

मैं बिल्कुल वैसा ही समस्या थी जब तक मुझे एहसास हुआ कि यह ब्राउज़र/फेसबुक कैशिंग समस्या की बात थी। सुनिश्चित करें कि आपके पास अपने वेबस्पेस में नवीनतम कोड है और यदि आप अपनी समस्या का समाधान हो तो अपने ऐप को नए ब्राउज़र में जांचें।

2

मेरी समस्या आपके समान थी। मैंने यह सत्यापित करने के लिए मेरी सभी जावास्क्रिप्ट की जांच की है कि मेरा दायरा FB.login परिभाषा में अच्छा था या नहीं। अंत में मुझे एहसास हुआ कि मेरे एचटीएमएल में एक फेसबुक बटन है।

<form class="form-signin"><fb:login-button size="large">Facebook</fb:login-button></form> 

जब मैं भी अमेरिकन प्लान बटन में गुंजाइश को परिभाषित किया है, फेसबुक मुझे correcty नई अनुमतियों को स्वीकार करने के लिए पूछते हैं कि मैं अपने दायरे को बदलने

<form class="form-signin"><fb:login-button size="large" scope="<?php print($sFacebookScope);?>">Facebook</fb:login-button></form> 
+0

यह एकमात्र कामकाजी समाधान है! एक्सएफबीएमएल बटन के लिए स्कोप विशेषता की आवश्यकता है! इसका दस्तावेज़ीकरण में उल्लेख नहीं है, और कोड नमूने अधूरे हैं। निश्चित रूप से यह एक दस्तावेज़ीकरण गलती है! –

0

एकमात्र समाधान है कि के लिए मुझे डाल रहा था काम किया है इस तरह लॉगिन बटन टैग में अनुमतियां:

<fb:login-button show-faces="true" width="200" max-rows="1" data-scope="email">< /fb:login-button>

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