2013-02-07 10 views
5

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

यदि वे अनुमतियों को स्वीकार नहीं करते हैं तो उन्हें लॉग आउट करने की कोई विधि काम नहीं करेगी। मैंने सब कुछ करने की कोशिश की है जिसे मैं सोच सकता हूं और प्रत्येक पोस्ट जिसे मैं स्टैक ओवरफ्लो पर पा सकता हूं।

अगर उपयोगकर्ता को उपयोगकर्ता से अनुमति नहीं है तो मैं ग्राहक को कैसे लॉग कर सकता हूं?

मैंने बग रिपोर्ट का उपयोग करके फेसबुक पर यह रिपोर्ट की है, उन्होंने कहा है कि वे इसे देख रहे हैं। बस उम्मीद है कि यहां पर प्रतिभाओं में से एक का विचार था।

+0

मैं अगर मैं पूरी तरह से समझते है कि तुम क्या बात कर रहे हैं यकीन नहीं है के बारे में ... क्या आपका मतलब है कि उपयोगकर्ता आपके आवेदन को अधिकृत करने या विस्तारित अनुमति संवाद पर संकेत मिलने पर दबाया गया दबाया गया? – Lix

+1

प्राधिकृत करने के लिए संकेत दिए जाने पर उन्होंने रद्द कर दिया। – jeremiah

+0

मुझे आपके साथ एक ही समस्या है। क्या आपको कोई समाधान मिला है? – Jako

उत्तर

1

आपको यह निर्धारित करने के लिए ग्राफ़ एपीआई में अनुमति कनेक्शन का उपयोग करना चाहिए कि क्या उपयोगकर्ता ने कुछ परमिट आवश्यक हैं या नहीं। यदि वे नहीं हैं तो आप लॉगिन बटन को प्रस्तुत करने या दायरे के साथ प्रवाह के लिए एक शर्त के रूप में उपयोग कर सकते हैं।

उदाहरण आ रहा है: वर्तमान PHP एसडीके, और वर्तमान जेएस एसडीके लॉगिन बटन html5 के साथ शामिल है।

* उदाहरण में मैं अनुमति अनिवार्य रूप manage_pages उपयोग कर रहा हूँ। *

पीएचपी एसडीके 3.2.2 init।

require '../../src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '1111111111111111', 
    'secret' => 'xxxxxxxxxxxxxxxx', 
    'cookie' => true, // enable optional cookie support 
    )); 
try { $user = $facebook->getUser(); } catch (FacebookApiException $e) { }; 

PHP कोड:

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_accounts = $facebook->api('/me/?fields=permissions'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

पीएचपी की स्थिति और एचटीएमएल 5 प्रवेश बटन

 <div id="fb-root"></div> 
     <script>// current js sdk</script> 
<?php if($user && !$user_accounts[permissions][data][0][manage_pages]): ?> 
// we know we have a user but no perms so lets render button with out scope. 
    <div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large"></div> 
<?php elseif($user && $user_accounts[permissions][data][0][manage_pages]): ?> 
// we know we have a user and they have given perms so render button with scope. 
    <div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div> 
<?php elseif(!$user): ?> 
// we have no user, flow as new user... or provide 2 buttons lol. 
    <div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div> 
<?php endif; ?> 
+0

दुर्भाग्य से यह वास्तव में मेरे मामले में काम नहीं करेगा। मेरी समस्या यह है कि मैं उन्हें फेसबुक के लॉगआउट करने के लिए मजबूर नहीं कर सकता। जब वे लॉगऑन करते हैं तो उन्हें अनुमति अनुरोध के साथ प्रस्तुत किया जाता है। अगर वे रद्द करें पर क्लिक करते हैं, तो उन्हें फेसबुक पर भेजने के बिना फेसबुक से लॉग इन करने का कोई तरीका नहीं है। ग्राहकों को अन्य वेबसाइटों पर जाने से रोकने के लिए कियोस्क को जितना संभव हो सके बंद कर दिया जाना चाहिए (यानी बेवकूफ बच्चों को अश्लील साइटों को खींचने से रोकने के लिए); मेरे पास लॉक की गई साइट का हर दूसरा टुकड़ा है। डोम का उपयोग कर रद्द तत्व को हटाने के लिए फ़ायरफ़ॉक्स के लिए एक प्लगइन लिखना एकमात्र अन्य विकल्प है। – jeremiah

+0

मैं इसे किसी भी बार फिर से देखे जाने पर अपडेट करना चाहता था। फ़ायरफ़ॉक्स प्लगइन वह मार्ग था जिसे मुझे जाना था। फेसबुक इस समस्या को ठीक करने से इंकार कर देता है। – jeremiah

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