2010-04-30 7 views
5

हाउडी। मुझे फेसबुक गेम बनाने के लिए काम सौंपा गया है, लेकिन मैं फेसबुक विकास के लिए नया हूं, इसलिए मैं अभी शुरू कर रहा हूं। अग्रिम में क्षमा करें अगर यह लोगों के लिए कोई ब्रेनर नहीं है।मुझे फेसबुक के लिए नई PHP क्लाइंट लाइब्रेरी का उपयोग करके आवश्यकता_login() जैसी कार्यक्षमता कैसे मिल सकती है?

मुझे साइट पर देखे गए सभी उदाहरणों के बाद मुझे परेशानी हो रही है, और जब मैं पढ़ने की कोशिश कर रहा हूं तो मैं फेसबुक प्रलेखन में लापता पृष्ठों में चल रहा हूं। मैं सोचता हूं ऐसा इसलिए है क्योंकि फेसबुक के लिए PHP क्लाइंट लाइब्रेरी का एक नया संस्करण है, और जो कुछ भी मैं ढूंढ रहा हूं वह पुराने क्लाइंट का जिक्र कर रहा है।

उदाहरण के लिए, मैं उदाहरण के एक बहुत में इस कोड को देखें:

require 'facebook.php'; 
$facebook = new Facebook(array('appId' => '(id)', 'secret' => '(secret)')); 
$facebook_account = $facebook->require_login(); 

... लेकिन कोई "require_login()" facebook.php फ़ाइल में प्रदान की जाती क्लाइंट लाइब्रेरी में है।

जो मैं कह सकता हूं उससे, ऐसा लगता है कि फेसबुक ने हाल ही में विकास के लिए कुछ नई प्रणाली तैयार की है, लेकिन मुझे इसके साथ निपटने के लिए कहीं भी कोई नमूना कोड नहीं दिख रहा है। नई लाइब्रेरी एक "example.php" फ़ाइल के साथ आता है, लेकिन ऐसा लगता है कि यह अन्य साइटों के लिए "फेसबुक के साथ लॉग इन" कार्यक्षमता जोड़ने के लिए ही है (जो मुझे लगता है कि "फेसबुक कनेक्ट" साइटों द्वारा उनका क्या मतलब है) केवल फेसबुक पर कैनवास पृष्ठ में ऐप्स चलाने के लिए।

विशेष रूप से, मुझे जो करना है, वह उपयोगकर्ताओं को फेसबुक के भीतर एक एप्लिकेशन पेज पर जाने देता है, क्या यह ऐप को अधिकृत करने की अनुमति देने वाले संवाद बॉक्स को लाता है, इसे अपने "गेम" पृष्ठ में दिखाया गया है, और फिर इसे प्राप्त करें मुझे उपयोगकर्ता के बारे में प्रासंगिक जानकारी पास करें ताकि मैं गेम बनाना शुरू कर सकूं। लेकिन मुझे कोई ट्यूटोरियल या उदाहरण नहीं मिल रहा है जो दिखाता है कि नई लाइब्रेरी का उपयोग करके इसे कैसे किया जाए। ऐसा लगता है कि यह बहुत सरल होना चाहिए, लेकिन मैं रोडब्लॉक में दौड़ रहा हूं।

या क्या मुझे PHP क्लाइंट लाइब्रेरी के बारे में कुछ याद आ रहा है? क्या चाहिए_login() मेरे लिए काम कर रहा है, और मेरे कार्यान्वयन के साथ कुछ तोड़ दिया गया है, जैसे गलत क्लाइंट लाइब्रेरी या कुछ? मैंने कल गिटहब से डाउनलोड किया, इसलिए मुझे पूरा यकीन है कि मेरे पास मेरे पास कोड का नवीनतम संस्करण है, लेकिन शायद मैं गलत "facebook.php" फ़ाइल डाउनलोड कर रहा हूं ...?

उत्तर

4

निम्नलिखित पुराने require_login फ़ंक्शन का पुनर्लेखन है। यह वास्तव में पुरानी कार्यक्षमता को डुप्लिकेट करता है।

function facebook_require_login($required_permissions = '') 
{ 
    global $facebook; // NOTE GLOBAL FACEBOOK OBJECT, MUST ALREADY BE INSTANTIATED 

    $user = $facebook->get_loggedin_user(); 
    $has_permissions = true; 

    if ($required_permissions) { 
    $facebook->require_frame(); 
    $permissions = array_map('trim', explode(',', $required_permissions)); 
    foreach ($permissions as $permission) { 
     if (!in_array($permission, $facebook->ext_perms)) { 
     $has_permissions = false; 
     break; 
     } 
    } 
    } 

    if ($user && $has_permissions) return $user; 

    $facebook->redirect(
    $facebook->get_login_url(Facebook::current_url(), $facebook->in_frame(), 
         $required_permissions)); 
} 
+0

धन्यवाद। अब मेरे पास जाने के लिए दो मार्ग हैं। –

+0

मैंने अभी इसे लागू किया है। जबकि phpfour से भी काम किया, यह एक ड्रॉप-इन प्रतिस्थापन था। धन्यवाद, डस्टिन। –

+0

अपवॉट के बिना स्वीकार करें? – defines

0

गिट हब पर नई PHP स्क्रिप्ट फेसबुक एपीआई के लिए एक कुरकुरा है, ग्राफ मुझे लगता है लेकिन मैंने एफक्यूएल के लिए कोड भी देखा है, जो जानता है। फ़ोरम वर्तमान में नीचे हैं और जब मैं पारित हुआ तो आईआरसी मर गया था। मैं उसी समाधान की तलाश में हूं क्योंकि आपको कॉल करने के लिए प्राधिकरण की आवश्यकता है -> api (\ me)। चूंकि मुझे सही याद रखने पर स्क्रिप्ट एक और वर्ग तक फैली हुई है, तो आप यह देखने के लिए प्रतिबिंब वर्ग/फ़ंक्शन का उपयोग करने का प्रयास कर सकते हैं कि कौन से तरीके उपलब्ध हैं। उम्मीद है कि कुछ ठोस दस्तावेज इसके रास्ते पर हैं! यदि आप इसे हल करते हैं तो कृपया मुझे बताएं। (खराब प्रारूपण के लिए खेद है मैं अपने मोबाइल पर हूं)

+0

प्रतिक्रिया के लिए धन्यवाद। मुझे एक फेसबुक एप विकसित करना है, ऐसा लगता है कि यह काफी सरल होगा, एक जटिल प्रक्रिया है। स्पष्ट उदाहरणों की कमी सिर्फ भ्रम में जोड़ती है। –

0

ठीक है, मैं नए PHP एसडीके का उपयोग कर आवेदन प्राधिकृत करने की समस्या का हल ढूंढने में सक्षम हूं। आप मेरे ब्लॉग पोस्ट here देख सकते हैं।

संक्षेप में, आपको एक प्रमाणित सत्र प्राप्त करने की आवश्यकता होगी और फिर आप उपयोगकर्ता की आईडी में लॉग इन करने के लिए फ़ंक्शंस को कॉल कर सकते हैं। इस मामले में, आप ग्राफ़ एपीआई से "/ me" पथ को कॉल करेंगे।

+0

ऐसा लगता है कि मैं जिस जानकारी की तलाश में था। मैं इसे आज़माउंगा और देखूंगा कि यह मुझे कहाँ ले जाता है। इस पोस्ट के लिए समय निकालने के लिए धन्यवाद! –

+0

मेरी खुशी - मैं इसके साथ 2 दिनों के लिए अटक गया था !! –

1

phpfour समाधान एकमात्र सही है - क्योंकि यह जीथ्यूब से नई PHP-sdk लाइब्रेरी का उपयोग करता है।

सबसे अच्छा समाधान नया फेसबुक संपादित करना है।php और एक requ_login() फ़ंक्शन जोड़ें (इसलिए सभी मौजूदा पेज जो इस पर भरोसा करते हैं वही रह सकते हैं)

public function require_login(){ 
    if (!$this->getSession()) { 
    $url = $this->getLoginUrl(array(
     'canvas' => 1, 
     'fbconnect' => 0 
    )); 
    echo "<script type='text/javascript'>top.location.href = '$url';</script>"; 
    } 
else 
    return $this->getUser(); 
} 
संबंधित मुद्दे