2012-12-12 10 views
5

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

https://developers.facebook.com पर -> Google Apps सेटिंग्स -> "मूल सेटिंग्स" के अंतर्गत स्थित - > "फेसबुक लॉगिन के साथ वेबसाइट" फ़ील्ड में, मैंने http://192.168.2.106:8080 सेट किया है, क्योंकि यह एड्रेस-पोर्ट संयोजन है जो मेरा विकास सर्वर बांधता है।

डीएचसीपी के कारण, मेरे कंप्यूटर में अब थोड़ा अलग आईपी पता है, अर्थात् 192.168.2.109। जब भी मैं अपने सर्वर शुरू करें और फिर से करने की कोशिश कुछ भी फेसबुक-एपीआई संबंधित (जैसे फेसबुक लॉग इन), मैं फेसबुक

{ 
    "error": { 
     "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.", 
     "type": "OAuthException", 
     "code": 191 
    } 
} 

से निम्न त्रुटि संदेश मिलता है कि वहाँ एक फेसबुक अनुप्रयोग के लिए एक तरह से की अनुमति के लिए एक "सीमा है फेसबुक लॉगिन के साथ आईपी पता वेबसाइटों के "? आप अन्य समाधान क्या सुझा सकते हैं?

मेरे सहयोगी अपने स्वयं के निजी नेटवर्क पते के साथ, अपनी मशीनों पर विकास सर्वर शुरू करने में सक्षम होंगे। इसलिए, एक ही फेसबुक ऐप आईडी विभिन्न आईपी पते के साथ विभिन्न मशीनों पर काम करेगी और फिर भी निजी नेटवर्क के अंदर सभी के लिए सुलभ हो जाएगी।

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

अद्यतन

दायर बग: https://developers.facebook.com/bugs/606277079382609

+0

क्यों न केवल अपने डीसीएचपी सर्वर पर एक स्थिर पट्टा स्थापित करें? – Igy

+0

कृपया प्रश्न में अपनी अतिरिक्त बाधाएं जोड़ें। – user314104

उत्तर

1

आप Windows पर चला रहे हैं आप को बदलने के अपने मेजबान सी में दायर की कोशिश कर सकते: \ Windows \ System32 \ drivers \ etc और एक काल्पनिक करने के लिए आपके आईपी जोड़ने डोमेन (आपके सहयोगियों को भी यह करना चाहिए) और उस डोमेन को फेसबुक सेटिंग्स पैनल में रखें। मुझे इस बारे में निश्चित नहीं है तो यह बताएं कि यह काम करता है :)

+0

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

1

जहां तक ​​मुझे पता है कि आप अपनी एप्लिकेशन सेटिंग में आईपी रेंज सेट नहीं कर सकते हैं, तो रीडायरेक्ट_री आमतौर पर डोमेन नामों के साथ यूआरएल को संभालने के लिए है। आम तौर पर सार्वजनिक वेबसाइटों के साथ मामला।

इस समस्या से बचने का सबसे अच्छा तरीका यह सुनिश्चित करना है कि स्थानीय विकास सर्वर हमेशा एक ही आईपी प्राप्त करता है, जो आमतौर पर एक अच्छा अभ्यास है यदि आप एक सर्वर लिख रहे हैं। वहाँ यह नेटवर्क सेटअप के आधार पर करने के लिए कई तरीके हैं, यहाँ दो विकल्प हैं: मैक को संबोधित

  • बेंड नियम एक छोटा सा

    1. सेटअप अपने DHCP सर्वर हमेशा अपने डेव सर्वर को एक ही आईपी आवंटित करने के लिए और एक अप्रयुक्त आईपी पते का दावा करने के लिए अपने कंप्यूटर को सेटअप करें। डीएचसीपी सर्वर आम तौर पर क्रम में आईपी आवंटित करते हैं (1 9 2.168.1.1 से शुरू होंगे और 1 9 2.168.254.254 तक काम करेंगे) तो अपने कंप्यूटर को सीमा के ऊपरी भाग में एक आईपी का दावा करें (आईपी को पहले सुनिश्चित करने के लिए पिंग करें)
  • +1

    यहां चुनौतियों/बाधाओं का सामना करना पड़ रहा है: कोई भी डेवलपर किसी भी नेटवर्क वातावरण में किसी के ओडब्ल्यूएन लैपटॉप पर वेब एप्लिकेशन शुरू करने में सक्षम होना चाहिए: कार्यस्थल पर, घर पर, एक व्यापार भागीदार के विदेशी नेटवर्क पर। विशेष रूप से विदेशी नेटवर्क उपयोग के मामले में कभी-कभी बदलते आईपी पर भरोसा करना असंभव हो जाता है। और "हर-डेवलपर-कैन-स्टार्ट-अप-द-वेब-एप्लिकेशन" केस केस केवल एक आईपी/एक केंद्रीय देव सर्वर होना असंभव बनाता है। – Abdull

    1

    आईपी पते का उपयोग करने के बजाय, स्थानीयहोस्ट का उपयोग करें।

    तो hxxp: //192.168.1.20 hxxp बन जाएगा: // स्थानीय होस्ट

    (टीटी के साथ xx प्रतिस्थापित करें)

    यह वापस स्थानीय मशीन पर ले कर जाता है, जो कुछ अपने आईपी पते है। मुझे लगता है कि आपका विकास सर्वर आपके पीसी पर चल रहा है, WAMP या कुछ इसी तरह का उपयोग कर रहा है। मैं इस धारणा को आकर्षित करता हूं क्योंकि आप कहते हैं कि इसे किसी भी नेटवर्क वातावरण में किसी भी लैपटॉप पर चलाना चाहिए।

    +0

    लोकहोस्ट पर विकास सर्वर चलाने से सहकर्मियों के लिए इस सर्वर तक पहुंचने के लिए यह असंभव (?) बनाता है। सहयोगी अपने फेसबुक खाते के साथ साइन-इन करने और वेबसाइट के साथ परीक्षण/खेलने के लिए सर्वर तक पहुंचने में सक्षम होंगे। – Abdull

    +0

    तो केवल एक देव सर्वर है, लेकिन आप चाहते हैं कि लोग इसे कहीं से भी एक्सेस कर सकें? यदि ऐसा है, तो आप स्थानीय पते का उपयोग करने में सक्षम नहीं होंगे, क्योंकि अगर एक सहयोगी एक अलग नेटवर्क पर है, तो इसका अपना स्थानीय नेटवर्क होगा। स्थानीय पते (1 9 2.168, 10.0 इत्यादि) के बारे में पूरा बिंदु यह है कि सभी नेटवर्कों में अपना स्वयं का अधिकार हो सकता है। तो क्या आप कह रहे हैं कि आप किसी भी नेटवर्क से देवताओं को अपने देव सर्वर तक पहुंचने में सक्षम होना चाहते हैं? यदि ऐसा है तो आपको अपने नेटवर्क के बाहरी आईपी पते का उपयोग करने और एक विशिष्ट पोर्ट असाइन करने की आवश्यकता होगी, फिर उस पोर्ट को अपने dev सर्वर पर अग्रेषित करें। – Puzbie

    1

    यदि आपके पास डोमेन है तो आप एक सबडोमेन test.mydomain.com बना सकते हैं जो 1 9 2.168.2.10 9 पर इंगित करता है।

    जब आपका पता दोबारा बदलना चाहिए, तो आप तदनुसार प्रवेश बदल सकते हैं।

    कोई कारण नहीं है कि एक DNS प्रविष्टि 1 9 2.168 श्रेणी से आईपी पते को इंगित नहीं कर सका। आपके नेटवर्क के बाहर किसी के लिए यह अधिक उपयोग नहीं होगा, क्योंकि वह बाहर से आपके आईपी पते तक नहीं पहुंच सकता है, लेकिन नेटवर्क के भीतर आपके सहकर्मियों के लिए यह काम करेगा।

    यदि कोई सहकर्मी अपने पीसी पर वेब ऐप चलाने के लिए चाहता है, तो वह निश्चित रूप से अपनी मेजबान फ़ाइल का उपयोग करके इस सेटिंग को ओवरराइड कर सकता है।

    3

    यदि आप लोकलहोस्ट का उपयोग करने से दूर हो सकते हैं, तो एक बहुत ही सरल तरीका है: फेसबुक ऐप को http://lvh.me:3000/ पर रीडायरेक्ट करें (या जो भी पोर्ट आपका सर्वर लोकहोस्ट पर सुन रहा है)। एक उदार डेवलपर lvh.me डोमेन का मालिक है और स्थानीयहोस्ट को इंगित करने के लिए DNS सेटअप था। मैंने यह कोशिश की है और यही वह है जिसे मैंने विकास परीक्षण के लिए उपयोग किया था। इसी तरह, आप इस तरह की चीजें कर सकते हैं और स्थानीय आईपी की एक श्रृंखला के लिए अपने डोमेन के DNS रिकॉर्ड को इंगित कर सकते हैं। मैं DNS से ​​परिचित नहीं हूं इसलिए मुझे यकीन नहीं है कि इसे कैसे सेट अप करें या यदि यह संभव है।

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