मैं फेसबुक जावास्क्रिप्ट एसडीके के साथ अपनी वेबसाइट में फेसबुक लॉगिन को एकीकृत करने की कोशिश कर रहा हूं। फेसबुक डेवलपर दस्तावेज़ here द्वारा प्रदान की चरण दर चरण निर्देश के अनुसार, यहां परीक्षण कोड मैंने लिखा है:FB.logLoginStatus पॉपअप विंडो के अंदर FB.login अवरुद्ध
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '{$MY_APP_ID}',
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse social plugins on this page
version : 'v2.1', // use version 2.1
status : true, // check FB login status
});
};
function fblogin() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
alert('Logged in.');
}
else {
FB.login();
}
}, true);
}
</script>
<button onclick="fblogin()">login</button>
<script src="//connect.facebook.net/en_US/sdk.js"></script>
क्षमा करें, वेबसाइट डोमेन के प्रतिबंध के कारण, मैं इस बेला के लिए नहीं ले सकते। लेकिन मैंने अपने डोमेन पर कोशिश की, फेसबुक लॉगिन विंडो क्रोम और फ़ायरफ़ॉक्स में पॉपअप की गई, लेकिन सफारी द्वारा अवरुद्ध। यह अजीब तरह का है, क्या फेसबुक डेवलपर दस्तावेज़ द्वारा प्रदान किए गए कोड स्निपेट के लिए कुछ भी गलत है?
यह आम बात है आधुनिक ब्राउज़रों स्वत: ब्लॉक करने के लिए के लिए पॉपअप - स्वचालित अर्थ वे किसी क्लिक की तरह किसी भी उपयोगकर्ता इंटरैक्शन द्वारा ट्रिगर नहीं किए गए थे। उत्तरार्द्ध भी सिफारिश है - क्लिक पर केवल 'FB.login' को कॉल करें। इससे पॉपअप को अवरुद्ध कर दिया जा सकता है। इसके अलावा, यह _choice_ को छोड़ देता है चाहे वे उपयोगकर्ता के हाथों में एफबी के माध्यम से लॉगिन करना चाहते हैं - बस इसे उन पर धक्का देने के बजाय। – CBroe
@CBroe मुझे लगता है कि उपयोगकर्ता इस विकल्प को चुनने से पहले फेसबुक को अपने जावास्क्रिप्ट एसडीके ट्यूटोरियल में इस प्रतिबंध का जिक्र करना चाहिए। बीटीडब्लू, मैंने उपयोगकर्ता क्लिक एक्शन पर केवल उपयोगकर्ता FB.login की कोशिश की है, लेकिन कुछ प्रतिबंध हैं जैसे 'प्राधिकरण कोड का उपयोग किया गया है' त्रुटि होती है जब उपयोगकर्ता दो बार लॉगिन करने का प्रयास करता है। – David
वैसे तो _let_ उन्हें दो बार लॉगिन करने का प्रयास न करें ... 'FB.getLoginStatus' आपको बताता है कि क्या वे पहले से ही पृष्ठ लोड समय पर लॉग इन हैं - और यदि ऐसा है, तो लॉगिन लिंक प्रदर्शित न करें, लेकिन "हैलो {name}" या इसके बजाय कुछ। और मुझे लगता है कि फेसबुक अपने सर्वोत्तम प्रथाओं में कहीं भी उपयोगकर्ता इंटरैक्शन के बिना कॉल के मुद्दे का उल्लेख करता है ... उपरोक्त कोड हालांकि एक छोटा सा उदाहरण है, और यह हर संभव मुद्दे को कवर करने के लिए _examples_ की प्रकृति है। – CBroe