फेसबुक ऐप: लोकलहोस्ट अब ऐप डोमेन के रूप में काम नहीं करता है


94

मैं रेल और jQuery का उपयोग कर फेसबुक के लिए एक खेल लिख रहा हूँ। जब से मैंने फेसबुक जावास्क्रिप्ट एसडीके का उपयोग करना शुरू किया है, ऐप के डोमेन के रूप में लोकलहोस्ट का उपयोग करना ठीक लग रहा था। मैं अपने खेल को स्थानीय और हरोकू दोनों पर परीक्षण करने में सक्षम था।

पिछले दिनों, ऐसा लगता है कि फेसबुक ने अपने डेवलपर यूआई के लिए एक बड़ा अपडेट किया है। अब अगर मैं लोकलहोस्ट को एक ऐप डोमेन के रूप में जोड़ता हूं, तो यह मुझे निम्न त्रुटि देता है:

यह कैनवस यूआरएल, सिक्योर कैनवस यूआरएल, साइट यूआरएल, मोबाइल साइट यूआरएल, पेज टैब यूआरएल या सिक्योर पेज टैब यूआरएल से लिया जाना चाहिए। निम्नलिखित डोमेन की जाँच करें और उन्हें सही करें: लोकलहोस्ट

मेरा गेम भी अब स्थानीय स्तर पर काम नहीं करता है और मुझे एक त्रुटि मिलती है जब उपयोगकर्ता में जावास्क्रिप्ट एसडीके लॉग होता है:

एपीआई त्रुटि कोड: 191 एपीआई त्रुटि विवरण: निर्दिष्ट URL एप्लिकेशन के स्वामित्व में नहीं है त्रुटि संदेश: अमान्य रीडायरेक्ट_यूरी: दिए गए URL को एप्लिकेशन कॉन्फ़िगरेशन द्वारा अनुमति नहीं है।

ऐसा तब नहीं होता है जब मैं अपना गेम तैनात करता हूं, क्योंकि herokuapp.com को एक वैध ऐप डोमेन माना जाता है।

अगर मैं अब लोकलहोस्ट या 127.0.0.1 का उपयोग नहीं कर सकता हूं, तो मुझे अपने गेम को कैसे विकसित और परीक्षण करना चाहिए?


कैनवस URL, सुरक्षित कैनवस URL, साइट URL, मोबाइल साइट URL, पृष्ठ टैब URL या सुरक्षित पृष्ठ टैब URL के लिए आपके क्या मूल्य हैं?

2
हे दोस्तों मुझे यह मिल गया है, आपको एक नया "टेस्ट ऐप" बनाना होगा, उन्हें ***** सेटिंग्स पर जी का उल्लेख करना चाहिए, अंतिम रूप से इसे लोकलहोस्ट
Louis Grellet

@LouisGrellet, खैर, मुझे "टॉप-लेवल डोमेन की अनुमति नहीं है"। जैसा आपने कहा, f ***** g
अभिजीत सरकार

1
"क्लाइंट oAuth सेटिंग्स के तहत, जहाँ यह कहता है कि रीडायरेक्ट URI के लिए स्ट्रिक्ट मोड का उपयोग करें और सुनिश्चित करें कि यह No और हिट सेव पर सेट है।" - wp-native-articles.com/blog/news/…
eflat

जवाबों:


241

प्रोटोकॉल बदलता रहता है, और स्वीकृत उत्तर आज मेरे लिए काम नहीं करता है। मामले में यह अन्य खोजकर्ताओं की मदद करता है, यही मेरे लिए काम करता है:

  • बेसिक टैब के तहत सेटिंग पेज पर सभी बदलाव किए गए थे

1.) विकल्पों के पहले बॉक्स के नीचे केंद्र में, "+ प्लेटफ़ॉर्म जोड़ें" पर क्लिक करें और "वेबसाइट" चुनें (या जो भी आपके ऐप के लिए उपयुक्त है।)

2.) आपके द्वारा जोड़ी गई वेबसाइट के लिए आने वाले बॉक्स में: साइट URL: http://localhost:3000/

3.) उस बॉक्स के ऊपर (सेटिंग्स => मूल): ऐप डोमेन: localhost

4.) नीचे दाईं ओर - "परिवर्तन सहेजें" पर क्लिक करें

5.) सुनिश्चित करें कि आपके पास अपने कोड में ऐप आईडी कॉपी और पेस्ट किया हुआ है। (यदि आपको फिर से आवश्यकता हो तो आईडी उस पृष्ठ पर पहले बॉक्स में है।)


1
जवाब अपडेट करने के लिए धन्यवाद। वास्तव में, ऐसा लगता है कि मूल उत्तर अब काम नहीं करता है (फिर भी, आपके मूल उत्तरों के लिए धन्यवाद कैमिलो और रेयरक्लास)। यह शर्म की बात है कि फेसबुक कभी भी इन परिवर्तनों की घोषणा नहीं करता है।
रेवेनस्टाइन

1
फेसबुक ने हाल ही में इसे काम करने के लिए तय किया होगा localhostक्योंकि यह पहले काम नहीं करता था। अच्छे उत्तर के लिए धन्यवाद।
dbasch

25
ध्यान दें कि आपके URL को सेटिंग्स> उन्नत> मान्य OAuth रीडायरेक्ट URI में भी सूचीबद्ध किया जाना चाहिए ।
कारा ब्राइटवेल

3
यह अब काम नहीं करता है :( मुझे URL अवरुद्ध है: यह रीडायरेक्ट विफल हो गया क्योंकि रीडायरेक्ट URI ऐप के क्लाइंट OAuth सेटिंग्स में श्वेत नहीं किया गया है। सुनिश्चित करें कि क्लाइंट और वेब OAuth लॉगिन चालू है और अपने सभी ऐप डोमेन को Valid OAuth में जोड़ें। पुनर्निर्देशित यूआरआई।
मारिया इनेस पर्निसारी

3
अब आपको 'http' का उपयोग करने की अनुमति नहीं है। यह 'https' होगा।
i ’को 10:१०

31
  1. Http://developers.facebook.com में अपने ऐप के सेटिंग पेज पर जाएं
  2. ऊपर बाईं ओर ड्रॉपडाउन तीर पर क्लिक करें (अपने ऐप के नाम के आगे) और "टेस्ट ऐप बनाएं" पर क्लिक करें और इसे एक नाम दें
  3. सेटिंग में> उस नए टेस्ट ऐप के बेसिक ने ऐप डोमेन को "लोकलहोस्ट" के रूप में सेट किया।
  4. वेबसाइट साइट URL को " http: // localhost: 8888 " (या जो भी पोर्ट आप उपयोग कर रहे हैं) के रूप में सेट करें।
  5. महत्वपूर्ण: इस ऐप में आपके ऑनलाइन आवेदन से अलग ऐप आईडी और ऐप सीक्रेट है। तो, अंतिम चरण: सुनिश्चित करें कि आप अपने स्थानीयहोस्ट में बैठे कोड को टेस्ट ऐप के ऐप आईडी और ऐप सीक्रेट के साथ अपडेट करते हैं। इसके विपरीत, कोड जो लाइव सर्वर में बैठता है, उसे मुख्य ऐप की आईडी और सीक्रेट का उपयोग करना चाहिए।

सबसे समझदार / आधुनिक समाधान बनाम एक देव दूत के साथ काम करने के लिए अपने ठेस खाते को कॉन्फ़िगर करने की कोशिश करना।
कार्ल एडवर्ड्स

13

आप अभी भी अपने एप को टेस्ट कर सकते हैं, उसे हिरोकू जैसे रिमोट पर तैनात किए बिना। etc/hostsइस तरह से फ़ाइल को अद्यतन करने की चाल है :

127.0.0.1 mydomain.com

फिर फेसबुक ऐप की सेटिंग पर, [ ["और"] के बिना [ http: //] mydomain.com टाइप करें।

इसने मेरे लिए इस तरह से काम किया


यदि आप एक गैर-मानक पोर्ट का उपयोग करते हैं तो यह काम नहीं करेगा जो आमतौर पर लोग करते हैं यदि वे समानांतर में कई ऐप विकसित करते हैं।
9

1
यह काम करेगा, मैंने पोर्ट 8000 पर सेवा करने के लिए python -m SimpleHTTPServer का उपयोग किया, और example.com:8000/test-facebook.html , अपेक्षित परिणाम प्रदान किया। मैं यह अनुमान लगाता हूं कि आपने 127.0.0.1 example.com को / etc / मेजबानों
पैट्रिक

जानकार अच्छा लगा! तो वे बंदरगाह को अनदेखा करने लगते हैं, अजीब है।
एमजोल

9

2017 में हर कोई जो इसके साथ जुड़ रहा है। इंटरफ़ेस फिर से बदल गया। मैं इस उत्तर पर टिप्पणी करना चाहता था, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है। आपके ऐप के लोकलहोस्ट यूआरएल को अब तीन जगहों पर कॉपी करना होगा। वर्तमान में, (26 अक्टूबर, 2017) अनुक्रम है:

1.) बाएं मेनू में "सेटिंग" पर क्लिक करें।

2.) विकल्पों के पहले बॉक्स के तहत केंद्र में, "+ प्लेटफ़ॉर्म जोड़ें" पर क्लिक करें और "वेबसाइट" चुनें (या जो भी आपके ऐप के लिए उपयुक्त है।)

3.) उस बॉक्स में जो वेबसाइट के लिए आता है, आपने अपनी लोकलहोस्ट साइट url की प्रतिलिपि बनाई है (fe http: // localhost: 3000 / )

4.) उस "ऐप डोमेन" के ऊपर के बॉक्स में उसी URL को कॉपी करें

5.) सबसे नीचे दाईं ओर - "परिवर्तन सहेजें" पर क्लिक करें

6.) "उत्पाद" के तहत बाएं मेनू में "फेसबुक लॉगिन" पर क्लिक करें (या यदि उपलब्ध नहीं है तो "+ उत्पाद जोड़ें" के माध्यम से इसे जोड़ें)

7.) अब आप फेसबुक लॉगिन सेटिंग्स में हैं। उसी url को "Valid OAuth रीडायरेक्ट URI" फ़ील्ड में कॉपी करें

यह काम करना चाहिए।


2
ध्यान दें कि फेसबुक अब वैध OAuth रीडायरेक्ट URIs के लिए "http" की अनुमति नहीं देता है
OmNiOwNeR

5

बस अपने कैनवास url या मोबाइल साइट url के रूप में लोकलहोस्ट को जोड़ें, इससे आपको अपने ऐप डोमेन सेटिंग में लोकलहोस्ट और herokuapp.com दोनों मिलेंगे। फिर एक बार जब आपका ऐप उत्पादन में होगा, तो इसे हटा दें।


5

यह गलत तरीका है। आपको ऐप सेटिंग में टेस्ट टैब का उपयोग करके एक टेस्ट एप्लिकेशन बनाना होगा। और फिर आप अपने आवेदन के लिए अपना विकास चरण url (उदाहरण के लिए localhost) दर्ज कर सकते हैं।


1
मैं एक परीक्षण एप्लिकेशन बनाया है, लेकिन यह काम नहीं किया। कोई और जानकारी?
रोजर गजराज

हां, मेरा मानना ​​है कि यह सही तरीका है, पूर्ण निर्देशों को देखें stackoverflow.com/a/38173031/3625739
georgios

5

Firebase का उपयोग कर समाधान

इस कार्य को करने के लिए localhost, 3000मैंने निम्नलिखित कार्य किया:

  1. ऐप बनाएं

टेस्ट ऐप बनाएं

  1. अब एरो ड्रॉपडाउन (टॉप लेफ्ट) से "+ टेस्ट टेस्ट बनाएं" चुनें।

यहां छवि विवरण दर्ज करें

  1. localhostऐप डोमेन में जोड़ें

यहां छवि विवरण दर्ज करें

  1. जोड़े http://localhost:3000/चयनित द्वारा साइट यूआरएल के लिए "+ जोड़ें मंच"

यहां छवि विवरण दर्ज करें

इस बिंदु तक मैंने यहां प्रस्तुत सभी पिछले उत्तरों का पालन किया था, लेकिन कुछ भी काम नहीं किया।

इसलिए...

  1. बाएं हाथ के मेनू में, "उत्पाद जोड़ें" चुनें

  2. "फेसबुक लॉगिन" जोड़ें

आपको एक डिफ़ॉल्ट वर्कफ़्लो के साथ प्रस्तुत किया जाएगा, डिफ़ॉल्ट डोमेन के साथ http://localhost:3000/, अंत तक "जारी रखें" पर क्लिक करें।

  1. उत्पाद मेनू से "फेसबुक लॉगिन> सेटिंग्स" चुनें।

  2. अपना फायरबेस OAuth रीडायरेक्ट URI दर्ज करें (जब आपके फायरबेस कंसोल में फेसबुक लॉग इन को सक्षम करें तो https://console.firebase.google.com , नीचे उदाहरण देखें)

यहां छवि विवरण दर्ज करें

  1. URI और सेव पेस्ट करें।

यहां छवि विवरण दर्ज करें

किया हुआ।


2

पोर्ट के साथ url का उपयोग करने का प्रयास करें, जैसे

    http://localhost:8000/

मैं एक ही मुद्दा रहा था और अभी यह समाधान मिला।


1
आपको प्लेटफ़ॉर्म के रूप में 'फ़ेसबुक पर ऐप' जोड़ने और लोकलहोस्ट को जोड़ने की ज़रूरत है : कैनवस यूआरएल में 8000
टैचुन लिन

1

यह मेरे लिए उसके शहर में काम करता है, लोकलहोस्ट चीज़ काम नहीं करती (मेरे लिए)। मुझे उम्मीद है यह मदद करेगा

1.) विकल्पों के पहले बॉक्स के नीचे केंद्र में, "+ प्लेटफ़ॉर्म जोड़ें" पर क्लिक करें और "वेबसाइट" चुनें (या जो भी आपके ऐप के लिए उपयुक्त है।)

2.) आपके द्वारा अभी-अभी जोड़ी गई वेबसाइट के बॉक्स में: साइट URL: http://MYAPP.herokuapp.com/ (अपने ऐप के नाम के साथ MYAPP बदलें)

3.) उस बॉक्स के ऊपर (सेटिंग्स => मूल): ऐप डोमेन: MYAPP.herokuapp.com (आपके ऐप के नाम के साथ MYAPP को बदलें)

4.) नीचे दाईं ओर - "परिवर्तन सहेजें" पर क्लिक करें


1

कुछ अन्य लोगों के लिए बस एक नोट जो इस समस्या से जूझ रहा है जैसे मैं था। मैं "परीक्षण" ऐप्स के साथ काम करने में सक्षम नहीं हूं। मेरी वास्तविक ऐप सेटिंग का उपयोग करना (और बस जोड़ना

"http://localhost:3000/"

मेरे कैनवास URL के लिए) सभी के सुझाव के अनुसार काम किया। ऐसा लगता है कि परीक्षण ऐप्स वास्तविक ऐप्स के बराबर नहीं हैं।


1

मैं अपने रेल एप्लिकेशन के साथ एक समस्या में भाग गया जिसे मैं आमतौर पर http: // localhost: 3000 के साथ चलाता हूं क्योंकि फेसबुक को अब https का उपयोग करने के लिए वैध OAuth पुनर्निर्देशित की आवश्यकता है।

स्थानीय रूप से https का उपयोग करने के लिए, मैंने [ngrok] [1] का उपयोग किया है जो आपको सुरंग प्रदान करके https का उपयोग करने की अनुमति देता है। यह करने के लिए:

  1. मैं उनकी वेबसाइट पर गया और उनका प्रोग्राम डाउनलोड किया
  2. मैंने प्रोग्राम के लिए फाइल निकाली
  3. अपने कंसोल में, मैं उस निर्देशिका में गया, जहां मेरे विंडोज मशीन पर 'ग्रॉक http 3000' प्रविष्ट किया गया था, अन्य लोग './grok http 3000' का उपयोग कर सकते हैं।
  4. दर्ज करने के बाद, ngrok ने एक https पता दिया जो मैंने Facebook में Valid OAuth Redirect URIs फ़ील्ड में डाला
  5. तब मैंने अपना सर्वर शुरू किया और लोकलहोस्ट: 3000 के बजाय उस https पते का उपयोग करके इसे एक्सेस करने में सक्षम था

1

स्थानीय परीक्षण करने के लिए आपको बस इतना करना है कि ऐप को बंद कर दें, या फेसबुक ऐप को डेवलपमेंट मोड में डाल दें। तब फेसबुक आपको ऐप तक पहुंचने की अनुमति देगा


0

मेरे लिए यह इस तरह काम किया:

फेसबुक ऐप के डैशबोर्ड को कॉन्फ़िगर करना:

* 'मूल' टैब पर:

1) ऐप डोमेन को खाली छोड़ना।

2) किसी भी प्लेटफॉर्म को मिटाना। अर्थ: कोई वेबसाइट नहीं कैनवास मंच। (इसलिए भरने के लिए कोई साइट-URL फ़ील्ड नहीं)

* 'उन्नत' टैब पर:

3) मैंने मान्य OAuth में यूआरआई को पुनर्निर्देशित किया:

http://localhost/myappfolder/redirect.php

4) मेरे कोड के बारे में, मेरी c: / xampp/htdocs/localhost/myappfolder/index.php (यह फ़ाइल लॉगिन बनाता है):

$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');  

redirect.php फ़ाइल के अंदर:

$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');  

और मुझे एक सत्र मिला! आखिरकार! अंत में खुद को लटकाने की जरूरत नहीं: पी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.