लोकलहोस्ट पर फेसबुक एप्लीकेशन चलाना


92

मैं अपने लोकलहोस्ट से फेसबुक चैट से जुड़ने की योजना बना रहा हूं। मुझे फेसबुक से सत्र कुंजी प्राप्त करने की आवश्यकता होगी। जब मैं साइट URL देता हूं localhost:8080या ip-address:8080यह काम नहीं करता है।

मैंने 2 एप्लिकेशन को 2 अलग-अलग एपीआई कुंजियों के साथ स्थापित करने के बारे में पढ़ा है जो एक देवग / लोकलहोस्ट पर चलती है लेकिन मुझे यह नहीं मिला।

क्या कोई समझा सकता है कि लोकलहोस्ट पर फेसबुक ऐप कैसे चलाया जाए?


@Kavya क्या आप डेस्कटॉप फेसबुक चैट एप्लिकेशन बनाने की कोशिश कर रहे हैं?
सीकरॉक

हाँ ... मैं अपने m / c से facebook सर्वर को हिट करना चाहता हूं ... उसी के बारे में एक पोस्ट देखी थी stackoverflow.com/questions/1877913/… मैं इसे प्राप्त करता हूं ...
उत्साही

@ काव्य यदि आप एक बनाना चाहते हैं, तो आपने उस प्रोग्रामिंग लैंग्वेज का उल्लेख नहीं किया है, जिसका आप उपयोग करने जा रहे हैं?
सीकरॉक

2
मैंने उसके बारे में एक ट्यूटोरियल लिखा है।
ifaour

5
@xoxoxo कृपया अपने संचार में उचित विराम चिह्न और वर्तनी का उपयोग करें।
बार्ट

जवाबों:


77

मैंने कुछ समय पहले इस बारे में एक ट्यूटोरियल लिखा था।

सबसे महत्वपूर्ण बिंदु "साइट URL" है:

साइट URL: http: // localhost / app_name /

जहाँ फ़ोल्डर संरचना कुछ इस प्रकार है:

app_name
¦   index.php
¦
+---canvas
¦   ¦   index.php
¦   ¦
¦   +---css
¦           main.css
¦           reset.css
¦
+---src
        facebook.php
        fb_ca_chain_bundle.crt

EDIT:
काव्या : FB सर्वर बिना आईपी या पोर्ट के भी मेरी लोकलहोस्ट को कैसे पहचानता है ??

मुझे नहीं लगता कि इसका फेसबुक के साथ कुछ भी लेना-देना है, मुझे लगता है कि iframe srcपैरामीटर क्लाइंट-साइड से लोड होने के बाद यह आपके स्थानीय URL का इलाज करेगा जैसे कि आप इसे सीधे अपने ब्राउज़र पर डालते हैं।

उदाहरण के लिए सामग्री के साथ आपके ऑनलाइन सर्वर पर एक फ़ाइल है (उदाहरण के लिए online.php):

<iframe src="http://localhost/test.php" width="100%" height="100%">
    <p>Not supported!</p>
</iframe>

और आपकी लोकलहोस्ट रूट डायरेक्टरी में, फाइल है test.php:

<?php echo "Hello from Localhost!"; ?>

अब http://your_domain.com/online.phpआप अपने स्थानीयहोस्ट फ़ाइल की सामग्री देखेंगे!

यही कारण है कि रीयलटाइम सब्सक्रिप्शन और डिटथोराइज कॉलबैक (सिर्फ उल्लेख करने के लिए) लोकलहोस्ट यूआरएल के साथ काम नहीं करेंगे ! क्योंकि फेसबुक इन URL के लिए पिंग (http अनुरोध भेजेगा) लेकिन जाहिर है कि फेसबुक सर्वर उन URL को आपके लिए ट्रांसलेट नहीं करेगा!


मैं 'साइट यूआरएल' को खोजने के लिए प्रतीत नहीं कर सकता / सकती हूं कि यह कहां स्थित है या क्या है?
user962206

क्या यह 8080 पोर्ट के लिए काम करता है? मैं अभी भी साइट url के साथ त्रुटि प्राप्त कर रहा हूं: http://localhost:8080/auth/index.htmlऔर वेबपेज जो त्रुटि देता है वह है http://localhost:8080/auth/index.htmlऔर चैनल लाइन है:channelUrl : '//localhost:8080/auth/channel.html',
necromancer

मुझे 'फ़ोल्डर संरचना' भाग समझ में नहीं आता है। यदि आप अपने पेज पर फेसबुक टिप्पणियों को लोड करने के लिए फेसबुक के साथ बस अपनी वेबसाइट पर लॉग इन कर रहे हैं, तो क्या आपको अभी भी उस कैनवास संरचना की आवश्यकता है?
AlxVallejo

कुछ टनलिंग उपकरण हैं जो आपको अपने लोकलहोस्ट को एक सार्वजनिक नाम देने और इसे दृश्यमान बनाने की अनुमति देगा, इसलिए फेसबुक वापस पिंग कर सकता है। मैंने एक बनाया, जिसका नाम पेजकीट है , अन्य भी हैं।
बरजनी रूनर

29

यदि आप लोकलहोस्ट का उपयोग करते हैं:

फ़ेसबुक में -> सेटिंग्स -> बेसिक, फील्ड में "ऐप डोमेन" "लोकलहोस्ट" लिखिए, फिर "+ ऐड प्लेटफ़ॉर्म" पर क्लिक करके "वेब साइट" चुनें।

यह दो साइट "मोबाइल साइट URL" और "साइट URL" बनाएगा, "साइट URL" में फिर से "लोकलहोस्ट" लिखें।

मेरे लिये कार्य करता है।


धन्यवाद, मैं अन्य समाधान की कोशिश की, लेकिन अंत में यह एक था जो काम किया,
rahulmishra

साइट Url क्षेत्र में मेरे पास था: लोकलहोस्ट , लेकिन मैंने काम नहीं किया, मैंने लोकलहोस्ट को ऐप डोमेन में भी जोड़ा है जैसा कि आपने उल्लेख किया है, यह ठीक काम करता है धन्यवाद
RegarBoy

23

आप 'होस्ट' फ़ाइल को भी संपादित कर सकते हैं और अपने डोमेन की स्थानीय विविधता बना सकते हैं।

उदाहरण

यदि आपका वास्तविक फेसबुक एप्लिकेशन का पता "example.com" है, तो आप "localhost" इंगित कर सकते हैं (आपके पीसी से केवल) अपने "होस्ट" फ़ाइल में "लोकलहोस्ट" की ओर इशारा करते हुए डोमेन बना सकते हैं और इस डोमेन के तहत अपनी स्थानीय वेबसाइट चला सकते हैं। आप फेसबुक को इस तरह से ट्रिक कर सकते हैं।


1
एक आकर्षण की तरह काम करता है, धन्यवाद! FYI करें- मेजबान 7 पर C:/Windows/System32/drivers/etc/hostsया उबंटू में विंडोज पर स्थित है/etc/hosts
pztrick

बेहतरीन कार्यप्रणाली है। धन्यवाद।
जेरद

मैं ऐप डोमेन और कैनवास URL को किस पर सेट करूं?
क्रेग

यह आपको पोर्ट निर्दिष्ट करने की अनुमति नहीं देगा, लेकिन आपको उसी डोमेन पर विकास की अनुमति देने के लिए रिवर्स प्रॉक्सी का उपयोग करना होगा। देखें stackoverflow.com/questions/10729034/...
MagicLAMP

7

सेटिंग के तहत आपके ऐप की मूल सेटिंग्स ( https://developers.facebook.com/apps ) में-> मूल-> चुनें कि आपका ऐप फेसबुक से कैसे एकीकृत होता है ...

अपने उत्पादन और विकास URL को धारण करने के लिए "साइट URL:" और "मोबाइल साइट URL:" का उपयोग करें। दोनों साइटों को प्रमाणित करने की अनुमति दी जाएगी। मैं सिर्फ प्रमाणीकरण के लिए फेसबुक का उपयोग कर रहा हूं, इसलिए मुझे मोबाइल साइट पुनर्निर्देशन की किसी भी सुविधा की आवश्यकता नहीं है। जब मैं प्रमाणीकरण का परीक्षण कर रहा होता हूं, तो मैं आमतौर पर "मोबाइल साइट URL:" को अपनी "लोकलहोस्ट: 12345" साइट पर बदल देता हूं और जब मैं काम कर लेता हूं तो इसे वापस सामान्य पर सेट करता हूं।


6

2013 अगस्त। Facebook किसी ऐप के लिए पोर्ट के साथ डोमेन सेट करने की अनुमति नहीं देता है, उदाहरण के लिए "लोकलहोस्ट: 3000"।

तो आप अपने उचित डोमेन को सुरंग के लिए https://pagekite.net का उपयोग कर सकते हैं localhost:port

रेल डेवलपर मुफ्त में http://progrium.com/localtunnel/ का उपयोग कर सकते हैं।

  • फेसबुक उस समय ऐप के लिए केवल एक डोमेन की अनुमति देता है। यदि आप लोकलहोस्ट के रूप में एक और जोड़ने की कोशिश कर रहे हैं, तो यह डोमेन के बारे में कुछ अलग तरह की त्रुटि दिखाएगा। उस समय कॉलबैक और ऐप डोमेन सेटिंग के लिए केवल एक डोमेन का उपयोग करना सुनिश्चित करें।

4

तो मुझे आज यह काम करने के लिए मिला। मेरे यूआरएल है http://localhost:8888। मैंने फेसबुक को जो डोमेन दिया है वह लोकलहोस्ट है। मुझे लगा कि यह काम नहीं कर रहा है क्योंकि मैं FB.apiविधि का उपयोग करके डेटा खींचने की कोशिश कर रहा था । मैं बिना स्रोत के "अपरिभाषित" नाम और एक छवि प्राप्त करता रहा, इसलिए निश्चित रूप से ग्राफ़ तक पहुंच नहीं थी।

बाद में मैंने महसूस किया कि मेरी समस्या वास्तव में है कि मैं केवल का एक पहला तर्क गुजर रहा था था /meकरने के लिए FB.api, और मैं एक टोकन नहीं था। इसलिए आपको FB.getLoginStatusटोकन प्राप्त करने के लिए फ़ंक्शन का उपयोग करना होगा, जिसे /meतर्क में जोड़ा जाना चाहिए ।


2

बस अपने कैनवास यूआरएल को http: // localhost / app_path के रूप में निर्दिष्ट करें ।


@ आईफोर आई। फोलोव्ड उर ट्यूटोरियल .. इसकी गिविन मी एरर एपीआई एरर कोड: 191 एपीआई त्रुटि विवरण: निर्दिष्ट URL एप्लिकेशन के स्वामित्व में नहीं है त्रुटि संदेश: redirect_uri एप्लिकेशन के स्वामित्व में नहीं है। मुझे इसकी जरूरत है fb के अंदर चलने के लिए ...
उत्साही

@ काव्या सिर्फ लोकलहोस्ट / app_path और ओपन fb ऐप के रूप में कैनवास url जोड़ते हैं , इसलिए यह आपके ऐप को लोकलहोस्ट से चलाएगा। देर तक, बहुत व्यस्त रहने के कारण।
जस्टकोडिंग

ऐसा करने का एक और तरीका है कि आप अपनी साइट / कैनवास URL को स्थानीय रूप से निर्दिष्ट करने के बजाय स्थानीय रूप से मैप करें। फिर आप अपने लक्ष्य डोमेन का उपयोग कर सकते हैं। मुझे यकीन नहीं है कि आप किस आर्किटेक्चर पर विकसित हो रहे हैं, लेकिन विंडोज़ के तहत आप अपने IIS साइट को स्थानीय रूप से सही बाइंडिंग के साथ सेट करके प्राप्त करेंगे और फिर C: \ Windows \ System32 \ driver \ etc में अपने होस्ट फ़ाइल में एक उपनाम जोड़ेंगे। उदाहरण के लिए लाइन को जोड़ना 127.0.0.1
yourproject.yourdomain.net

2

ठीक है, मुझे यकीन नहीं है कि इन उत्तरों के साथ क्या हो रहा है, लेकिन मैं आपको बता दूंगा कि मेरे काम में एक वरिष्ठ देव ने मुझे सलाह दी थी। मैं रूबी ऑन रेल्स में काम कर रहा हूं और टोकन तक पहुंचने के लिए फेसबुक के जावास्क्रिप्ट कोड का उपयोग कर रहा हूं।

समस्या: प्रमाणीकरण करने के लिए, फेसबुक आपके एड्रेस बार से url ले रहा है और तुलना कर रहा है कि उनके पास फ़ाइल में क्या है। वे आपको localhost:3000किसी भी कारण से उपयोग करने की अनुमति नहीं देते हैं । हालाँकि, आप yoursite.devएक स्थानीय सर्वर चलाकर और जहाँ या जहाँ आपका स्थानीयहोस्ट yoursite.devकरने के लिए इशारा कर रहा था , जैसे पूरी तरह से बने डोमेन नाम का उपयोग कर सकते हैं 127.0.0.1:3000

चरण 1 : Nginx को स्थापित या अपडेट करें

$ brew install nginx(स्थापित) या $ brew upgrade nginx(अद्यतन)

चरण 2 : अपनी nginx config फ़ाइल खोलें

/usr/local/etc/nginx/nginx.conf (आमतौर पर यहां)

/opt/boxen/config/nginx/nginx.conf(यदि आप बॉक्सन का उपयोग करते हैं)

चरण 3 अपने http {}ब्लॉक में इस बिट कोड को जोड़ें

proxy_passजहाँ आप इंगित करना चाहते हैं, वहां से बदलें yoursite.dev। मेरे मामले में यह लोकलहोस्ट की जगह ले रहा था: 3000 या इसके बराबर127.0.0.1:3000

server {
  listen       yoursite.dev:80;
  server_name  yoursite.dev;
  location / {
    proxy_pass http://127.0.0.1:3000;
  }
}

चरण 4 : /etc/hostsशामिल करने के लिए मैक पर अपनी मेजबानों फ़ाइल को संपादित करें

127.0.0.1   yoursite.dev

यह फाइल डोमेन को लोकलहोस्ट पर ले जाती है। यदि यह एक नियम से मेल खाता है, तो Nginx लोकलहोस्ट पर सुनता है और पुनर्निर्देश करता है।

चरण 5 : हर बार जब आप अपने देव वातावरण का उपयोग करते हुए आगे बढ़ते हैं, तो आप yoursite.devएड्रेस बार में उपयोग करते हैं, localhost:3000इसलिए फेसबुक आपको सही तरीके से लॉग करता है।


1

फ़ॉरवर्ड स्थानीय रूप से फ़ेसबुक ऐप्स के विकास में मदद करने के लिए एक बेहतरीन उपकरण है, यह एसएसएल का समर्थन करता है इसलिए प्रमाणित चीज़ कोई समस्या नहीं है।

https://forwardhq.com/in-use/facebook

अस्वीकरण: मैं देवों में से एक हूं


1
और PageKite फॉरवर्ड के प्रतियोगियों में से एक है (मैंने इसे बनाया!)। ;-)
बज़नी रूनर

सूरज के नीचे हर कोशिश करने के बाद, यह मेरे लिए काम किया। केवल मुद्दा यह है कि सभी अग्रेषण वास्तव में धीमा है। हालांकि FB कॉलबैक न पाने से बेहतर! साभार
क्रेग

0

आपको लोकलहोस्ट के लिए https पर चलने के लिए अपने ऐप को सेटअप करना होगा

आप ubuntu पर HTTPS सेटअप करने के लिए इसमें दिए गए चरणों का पालन कर सकते हैं

https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04

आपको निम्न चरणों को करने की आवश्यकता है:

अपाचे स्थापित करें (यदि आपके पास नहीं है)

sudo apt-get install apache2

चरण एक- एसएसएल मॉड्यूल को सक्रिय करें

sudo a2enmod ssl
sudo service apache2 restart

दो कदम - एक नई निर्देशिका बनाएँ

sudo mkdir /etc/apache2/ssl

चरण तीन - एक स्व हस्ताक्षरित एसएसएल प्रमाणपत्र बनाएं

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache/ssl/apache.key -out /etc/apache2/ssl/apache.crt

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

आम नाम (जैसे सर्वर FQDN या आपका नाम) []: example.com या localhost

चरण चार - प्रमाणपत्र सेट करें

sudo vim /etc/apache2/sites-available/default-ssl

निम्नलिखित पंक्तियों का पता लगाएं और अपनी सेटिंग्स के साथ उन लोगों को संपादित करें

ServerName लोकलहोस्ट या example.com

SSLCertificateFile /etc/apache2/ssl/apache.crt पर SSLEngine

SSLCertificateKeyFile /etc/apache2/ssl/apache.key

पांच चरण - नई वर्चुअल होस्ट सक्रिय करें

sudo a2ensite default-ssl
sudo service apache2 reload

0

एक चाल:

MAMPPRO का उपयोग करें और अपनी डिस्क पर अपनी साइट पर सर्वर नाम: वेबसाइट का सटीक पता (जैसे: helloworld.com) बनाएं

फेसबुक पर: तो आप अपना मूल साइट URL भी रख सकते हैं (उदाहरण के लिए: helloworld.com)

अब आप समझते हैं कि जब आप अपनी वेबसाइट को एड्रेस बार पर टाइप करते हैं तो आप लोकल में होते हैं ! ..और जब आप ऑनलाइन होना चाहते हैं, तो MAMP PRO पर सर्वर को निष्क्रिय करें।

:)


0

ऊपर दिए गए किसी भी उत्तर ने मेरे लिए काम नहीं किया। मैं एफबी एपीआई 2.5 पर चल रहा हूं। मेरा उन मुद्दों का एक संयोजन था जो एक बार हल होने पर सफलता की ओर ले जाते हैं

  1. यह सुनिश्चित करने के लिए एक परीक्षण एप्लिकेशन बनाएं कि इसे बनाए रखा जाए और इसे प्रबंधित किया जाए और लाइव होने पर इसे अक्षम किया जा सके
  2. त्रुटि संदेश को ठीक से पढ़ें :) - मुझे "क्लाइंट OAuth लॉगिन" के साथ "वेब OAuth लॉगिन" सक्षम करना था
  3. मेरे वर्तमान आईपी क्या है, यह जानने के लिए https://www.whatismyip.com/ का उपयोग करें
  4. मेरे डोमेन पर एक रिकॉर्ड बनाएं अर्थात http://localhost.mydomain.com जो मेरे वर्तमान आईपी को इंगित करता है

यह शायद डायनेमिक आईपी के परिवर्तन के रूप में आदर्श नहीं है और शायद आईपी को और अधिक "स्थिर" बनाने के लिए डीएनडीएनएस या कुछ इसी तरह का उपयोग कर सकता है लेकिन मेरे लिए काम किया है


0

मेरे मामले में इस मुद्दे का पता चला कि क्रोम लोकलहोस्ट से कोरस अनुरोध को अवरुद्ध कर रहा है: 4200 से फेसबुक एपि वेबसाइट। इस सेटिंग के साथ Chrome चलाना: "your_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security -user-data-dir = "c: / chrome ने एक ऐसे आकर्षण की तरह काम किया है, जो बिना किसी लोकलहोस्ट के भी होता है। फेसबुक ऐप की सेटिंग में जोड़ा गया।


स्थानीय विकास के लिए ठीक काम करता है, लेकिन उत्पादन में आपको फ़ेसबुक से डेटा साझा करने के लिए फ़ेसबुक की अनुमति (जो ब्राउज़र के विकल्प कॉल द्वारा प्राप्त की जाती है) की आवश्यकता है
रेडियो_हैड 15'19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.