2011-09-02 21 views
9

मैं अपने पृष्ठों में से एक के लिए एक स्वागत टैब बनाने की कोशिश कर रहा हूं, लेकिन मैं उपयोगकर्ताओं को पसंद करने में सक्षम होना चाहता हूं (अनुमति user_likes)।फेसबुक ग्राफ एपीआई - पेज टैब अतिरिक्त अनुमतियां

मैं केवल कैसे एक Facebook एप्लिकेशन या फेसबुक को एकीकृत एक वेबसाइट के लिए यह करने के लिए पर दस्तावेज़ीकरण देख सकते हैं, मैं कैसे किसी एप्लिकेशन (टैब) एक फेसबुक के अंदर पेज के लिए यह करने के लिए पर कोई दस्तावेज़ीकरण देख सकते हैं (जैसा कि एक स्वागत टैब)।

क्या यह पृष्ठ टैब के रूप में संभव है उपयोगकर्ता से अतिरिक्त अनुमतियों का अनुरोध करने के लिए, लेकिन इसके बिना पृष्ठ पहुंच की अनुमति दें, या यह एक मामला है या मुझे एप्लिकेशन बनाने के साथ-साथ एक पृष्ठ टैब भी है? क्या मेरे पास शायद एक बटन हो सकता है कि जब वे क्लिक करते हैं तो यह पेज अतिरिक्त अनुमति देता है?

मैं वर्तमान में दो अलग-अलग कार्यान्वयन की कोशिश कर रहा हूं, जिनमें से कोई भी मैं काम नहीं कर सकता, PHP और जावास्क्रिप्ट।

धन्यवाद,


बस फेसबुक लोगो के साथ एक लिंक, जो सिर्फ उपयोगकर्ता रीडायरेक्ट (पृष्ठों iframe के भीतर) एक स्क्रीन करने के लिए

$loginUrl = $fb->getLoginUrl(
    array('canvas' => 1, 'scope' => 'user_likes,user_about_me,user_birthday') 
); 

echo "<a href='$loginUrl'>Login</a>"; 

परिणाम का उपयोग कर। मुझे एक अनुमति संवाद चाहिए!

Facebook Fail


जावास्क्रिप्ट कोड का उपयोग

<script> 
    FB.init({ 
    appId : 'APPID', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true, // parse XFBML 
    oauth : true // enable OAuth 2.0 
    }); 

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: 'email'}); 
</script> 

Unsafe JavaScript attempt to access frame with URL https://www.facebook.com/dialog/oauth?api_key=158609350887973&app_id=158609350887973&client_id=158609350887973&display=popup&locale=en_US&method=permissions.oauth&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df2f7aed38%26origin%3Dhttp%253A%252F%url.com%252Ff3634c5da%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df9748b77&response_type=token%2Csigned_request&scope=email&sdk=joey from frame with URL http://url.com/gs/index.php. Domains, protocols and ports must match. 

में परिणाम जावास्क्रिप्ट भी निम्न त्रुटि पॉपअप बॉक्स खुलता

API Error Code: 191, API Error Description: The specified URL is not owned by the application, Error Message: Invalid redirect_uri: Given URL is not permitted by the application configuration.


मेरा ऐप config सेटिंग्स

Facebook Settings

+2

कोई बता सकता है कि करीबी और डाउनवॉट्स का प्रस्ताव क्यों दिया जा रहा है? मैंने पूछे जाने से पहले प्रश्न का शोध किया, और किसी पृष्ठ के लिए स्वागत टैब में अनुमतियों का अनुरोध करने का कोई उल्लेख नहीं मिला, बस आवेदन के हिस्से के रूप में उनसे अनुरोध कैसे करें। –

+0

... "डोमेन, प्रोटोकॉल और बंदरगाहों से मेल खाना चाहिए" आपकी समस्या के साथ कुछ करने के लिए हो सकता है। मैं पहले इसे ठीक करने के बारे में सोचूंगा (आपकी समस्या का मूल हो सकता है) –

+0

मुझे केवल यह पता चल सकता है कि यह फेसबुक के भीतर आईफ्रेम है, और यह स्वयं का एपीआई पैरेंट फ्रेम तक पहुंचने का प्रयास कर रहा है? (वास्तविक फेसबुक)। –

उत्तर

6

आपको अपनी पॉपअप विंडो में त्रुटि दिखाई दे रही है क्योंकि आपके प्राधिकरण URL में redirect_uri आपके साइट URL में ऐप कॉन्फ़िगरेशन में सूचीबद्ध नहीं है। इसे संबोधित करने के लिए, आपको ऐप कॉन्फ़िगरेशन में "वेबसाइट" विकल्प सक्षम करने की आवश्यकता है। "वेबसाइट" के बगल में स्थित चेकबॉक्स पर क्लिक करके इसे सक्षम करें और फिर "साइट यूआरएल" टेक्स्ट बॉक्स में http://Site.com (या जो भी आपकी असली साइट यूआरएल है) दर्ज करें। यह URL उस होस्ट यूआरएल से मेल खाना चाहिए जो आप redirect_uri में प्रदान कर रहे हैं। ऐसा करने से पॉपअप विंडो त्रुटि हल होनी चाहिए।

"असुरक्षित जावास्क्रिप्ट प्रयास फ्रेम तक पहुंचने का प्रयास" त्रुटि के संदर्भ में, क्या आप वेबकिट ब्राउज़र का उपयोग कर रहे हैं? वेबकिट इन त्रुटियों को फेंकता है लेकिन अधिकांश भाग को अनदेखा किया जा सकता है। अधिक जानकारी के लिए इसे देखें: "Unsafe JavaScript attempt to access frame with URL..." error being continuously generated in Chrome webkit inspector

0

जब आप एफबी कहते हैं तो 'मुझे' के बजाय प्रतिक्रिया ऑब्जेक्ट में उपयोगकर्ता आईडी का उपयोग करें।एपीआई दोनों विधियां इस तथ्य को इंगित करती हैं कि आपके पास अपनी वेबसाइट डोमेन सेटिंग्स ऐप सेटिंग्स में सही नहीं है।

हम अपने बहुत से टैब ऐप्स पर यह सटीक बात करते हैं, इसलिए यह निश्चित रूप से संभव है।

0

ऐसा लगता है कि आप app_id और api_key के लिए समान मान का उपयोग कर रहे हैं। ये अलग होना चाहिए।

+0

app_id और api_key समानार्थी हैं - एपीआई में कहीं भी जो एक बार 'api_key' की आवश्यकता होती है, ऐप आईडी इंस्टैड के साथ काम करेगी – Igy

0

लिंक ($ loginUrl) को प्रदर्शित करने के बजाय उपयोगकर्ता को रीडायरेक्ट करने का प्रयास करें, उदाहरण के लिए php header function या js location.href का उपयोग करना।

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