2011-01-30 14 views
5

मैं अपनी वेबसाइट के लिए फेसबुक के पंजीकरण उपकरण का उपयोग करने की कोशिश कर रहा हूं। मैं फेसबुक उपयोगकर्ताओं को अपनी वेबसाइट पर सहजता से लॉगिन करने की अनुमति देना चाहता हूं, लेकिन गैर-फेसबुक उपयोगकर्ता भी उस एकीकृत यूआई के माध्यम से खाता बनाने के लिए अनुमति देना चाहता हूं।फेसबुक एपीआई का एफबी: पंजीकरण 'अवैध' क्लाइंट_आईडी 'वापस लौटा रहा है जब फेसबुक से कनेक्ट नहीं होता

मैं उस उद्देश्य के लिए <fb:registration> टैग का उपयोग कर रहा हूं। यदि पृष्ठ पर पहुंचने पर मैं पहले से ही फेसबुक से कनेक्ट हूं, तो सबकुछ अपेक्षित काम करता है (फॉर्म मेरे फेसबुक अकाउंट से जानकारी के साथ पहले से भर चुका है)। लेकिन अगर मैं फेसबुक से कनेक्ट नहीं हूं, तो निम्न त्रुटि प्रदर्शित होती है: Invalid 'client_id'.

मैं क्या गलत कर रहा हूं?

आपकी मदद के लिए बहुत बहुत धन्यवाद।

आप सर्वर से प्रदान की गई एचटीएमएल कोड नीचे मिल जाएगा:

<!doctype html> 
<html xmlns:fb='http://www.facebook.com/2008/fbml'> 
<head id='head'> 
<title>MyWebSite - Signup</title> 
<link rel='stylesheet' type='text/css' href='/client/Core.css'/> 
<script language='JavaScript' type='text/javascript' src='/client/jQuery.js'></script> 
<script type='text/javascript'> 
function initialize() { 
$.getScript('client/Core.js'); 
$.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js'); 
} 

window.fbAsyncInit = function() { 
FB.init({ 
    appId : 123456789, // replaced here by my App ID 
    session : {}, 
    status : true, 
    cookie : true, 
    xfbml : true 
}); 
FB.Event.subscribe('auth.login', function() { 
    window.location.href = 'DoLogin'; 
}); 
}; 
</script> 
</head> 
<body onload='initialize();'> 
<span id='fb-root'></span> 
<fb:registration 
    fields='[{"name":"name"},{"name":"first_name"},{"name":"last_name"},{"name":"email"},{"name":"location"},{"name":"gender"},{"name":"password","view":"not_prefilled"},{"name":"captcha"}]' 
    redirect-uri='http://172.16.100.31/DoSignup' 
    width='600' 
    fb_only='false' 
    allowTransparency='true'> 
</fb:registration> 
</body> 
</html> 

उत्तर

13

आपको डेवलपर्स के अलावा अन्य उपयोगकर्ताओं को ऐप तक पहुंचने के लिए अपने एप्लिकेशन को कॉन्फ़िगर करना पड़ सकता है। मुझे इसे खोजने में कठिन समय था, लेकिन अगर मुझे अच्छी तरह याद है, तो यह ऐप को सैंडबॉक्स करने का मामला था या नहीं।

+0

बहुत बहुत धन्यवाद, वह था! यह समझ में आता है, लेकिन संदिग्ध त्रुटि संदेश वास्तव में मदद नहीं करता है ... – Romain

+0

डेवलपर पृष्ठ पर अपने ऐप में ,-- उन्नत-> प्रमाणीकरण-> सैंडबॉक्स मोड पर जाएं और अक्षम पर क्लिक करें। मैंने यह सोच सक्षम की है कि यह ठीक होगा क्योंकि मैं केवल डेवलपर पहुंच चाहता हूं, लेकिन मुझे लगता है कि यह पंजीकरण के साथ असंगत है! मुझे मूर्ख। –

+0

ओएमजी यह हमें मार रहा था - बहुत बहुत धन्यवाद! यह एक असली दोह था! पल। – Jurgen

0

यदि आप Facebook के साथ अपना ऐप्लिकेशन पंजीकृत वे तुम्हें एक AppId जो आप '123456789' के स्थान पर उपयोग करने के लिए की आवश्यकता होगी दे देंगे AppID उपरोक्त कोड में।

+0

आपके उत्तर के लिए धन्यवाद, लेकिन मेरे पास पहले से ही एक फेसबुक ऐप आईडी है, जिसका मैं ऊपर "123456789" के बजाय उपयोग कर रहा हूं। मैं अपनी ऐप आईडी देने से बचने के लिए सिर्फ इस नकली संख्या का उपयोग कर रहा था। इसके अलावा, क्या आप उपरोक्त कोड में कुछ भी गलत देखते हैं? यदि आपके पास ऐप आईडी है, तो क्या आप इस कोड को कॉपी/पेस्ट कर सकते हैं और इसे अपने ऐप आईडी से आज़मा सकते हैं? – Romain

2

मैं एक ही समस्या में भाग गया, सिवाय इसके कि मेरे पास पहले से ही सैंडबॉक्स अक्षम है। मैं

<script src="http://connect.facebook.net/en_US/all.js#appId={YOUR_APP_ID}&xfbml=1"></script> 

<fb:registration 
    fields="name,birthday,gender,location,email" 
    redirect-uri="https://developers.facebook.com/tools/echo/" 
    width="530"> 
</fb:registration> 

के रूप में स्क्रिप्ट टैग को शामिल किया था के रूप में यह registration example page पर था, हालांकि, JavaScript SDK page था

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : 'YOUR APP ID', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true // parse XFBML 
    }); 
</script> 

चाल थी बाहरी स्क्रिप्ट टैग से #appId={YOUR_APP_ID}&xfbml=1 निकाला जा रहा है।

0

बस यहाँ अनुमान लगा - क्योंकि मैं एक समान है, लेकिन गैर-समान समस्या थी:

आप http://developers.facebook.com/docs/plugins/registration/ पर फेसबुक XFBML कोड का उपयोग करें और {} 1234123434534 (या जो भी) द्वारा शब्द {YOUR_APP_ID} की जगह है, यह विफल रहता है क्योंकि यह घुंघराले ब्रैकेट की उम्मीद नहीं कर रहा है। (जेएसओएन और का उपयोग करने वाले विभिन्न अन्य क्षेत्रों से अलग उन्हें उम्मीद कर रहे हैं)।

मुझे नहीं पता कि आपने क्या किया है, लेकिन यह एक आसान गलती है, जैसा कि मैंने अभी पाया है।

+0

आपका अनुमान सही था! –

0

परीक्षण के लिए सेट अपने YOUR_APP_ID मेरे मामले में 113869198637480

+1

कोई भी यह मेरे लिए काम नहीं करता है – Vik

0

लिए, मैं पहले उपयोगकर्ता प्रवेश किए बिना अमेरिकन प्लान पंजीकरण लिंक प्रदर्शित किया गया था। लंबे समय तक मेरे सिर को खरोंचने के बाद, मैंने पंजीकरण फॉर्म प्रस्तुत करने से पहले उपयोगकर्ता से फेसबुक के माध्यम से लॉग इन करने को कहा। मेरी खुशी के लिए त्रुटि बहुत अधिक हो गई थी।

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