ชื่อโดเมนของแอพ Facebook เมื่อใช้ localhost


85

จากบทแนะนำที่นี่:
http://ankurm.com/blog/api/using-localhost-for-facebook-app-development/1091/

ฉันพยายามตั้งค่า Local development Area สำหรับแอพ Facebook ของฉัน แต่เมื่อฉันใส่ " http: // localhost: 85 / my_app / " เป็นชื่อโดเมนของฉัน Facebook บอกว่า

App Domains: " http: // localhost: 85 / app-name / " ไม่ควรมีข้อมูลโปรโตคอล

นอกจากนี้เมื่อฉันใส่ "localhost: 85 / my_app /" เป็นชื่อโดเมนของฉันฉันได้รับข้อผิดพลาด:

App Domains: localhost: 85 / my_app / ไม่ใช่โดเมนที่ถูกต้อง


6
ฉันไม่เชื่อว่าสิ่งที่คุณต้องการอัปเดตคือ "โดเมนของแอป" แทนสิ่งที่คุณต้องการอัปเดตคือ "URL ของไซต์" ซึ่งอยู่ที่: แอป> แก้ไขแอป> การตั้งค่า> พื้นฐาน> เว็บไซต์ที่มีการเข้าสู่ระบบ Facebook ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายเป็นสีเขียวและ "URL ของไซต์" จะปรากฏขึ้น คุณสามารถป้อน http: // localhost - ไม่จำเป็นต้องระบุพอร์ต แต่ส่วนใหญ่คุณระบุโปรโตคอล
Luis Perez

1
ไม่สามารถรับ localhost ให้ทำงานภายใต้ App Domain ตั้งค่าการตั้งค่าขั้นสูง | 'URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง' เป็น url localhost (http: // localhost: port #) ดูgithub.com/tschellenbach/Django-facebook/issues/376
โจ

โปรดทราบว่าโดเมนของแอปจะต้องมีlocalhostไว้เพื่อให้ยอมรับโดเมนได้ ฉันลองใช้ mysite.local แล้วมันใช้ไม่ได้ การเปลี่ยนแปลงSite URL to http://localhost:85/และApp Domains to http://localhost:85/บันทึกไว้แล้ว (FB ปรับเปลี่ยนโดเมน App) เพื่อให้การทำงาน
James Lock

สิ่งอื่นที่ต้องลอง: "ภายใต้การตั้งค่าไคลเอ็นต์ oAuth ซึ่งระบุว่าใช้โหมดเข้มงวดสำหรับ URI การเปลี่ยนเส้นทางตรวจสอบให้แน่ใจว่าได้ตั้งค่าเป็นไม่ใช่และบันทึก Hit" - wp-native-articles.com/blog/news/…
eflat

ต้องใช้ HTTPS สำหรับการเข้าสู่ระบบ Facebook คุณจะยังใช้ HTTP กับที่อยู่ "localhost" ได้ แต่ในขณะที่แอปของคุณยังอยู่ในโหมดการพัฒนาเท่านั้น Developers.facebook.com/blog/post/2018/06/08/…
yadavr

คำตอบ:


58

วิธีแก้ปัญหาของฉัน:

  1. ปล่อยให้ App Domains ว่างไว้
  2. (ผลิตภัณฑ์) เข้าสู่ระบบ Facebook> การตั้งค่า
  3. เพิ่ม http://localhost:85/my_app/ในValid OAuth redirect URIsกล่อง
  4. บันทึกการเปลี่ยนแปลง

6
@ Matt Long: ฉันไม่พบกล่อง URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องถูกลบออกไปหรือไม่
Julian

@MattLong ขอบคุณ! ฉันทำให้มันทำงานได้โดยใช้โซลูชัน Supasates
Julian

1
ทำงานให้ฉัน! (กุมภาพันธ์ 2018)
Daniel กล่าวว่า Reinstate Monica

18/10/2020 ฉันได้รับคำเตือน "การเปลี่ยนเส้นทางlocalhostจะได้รับอนุญาตโดยอัตโนมัติในขณะที่อยู่ในโหมดการพัฒนาเท่านั้นและไม่จำเป็นต้องเพิ่มที่นี่"
Kick Buttowski

55

ดูเหมือนว่าโปรโตคอลจะถูกเปลี่ยนไป

นี่คือวิธีแก้ปัญหาของฉัน (ฉันทดสอบเมื่อวันที่ 3 เมษายน 2015 และใช้งานได้ดี):

ในการตั้งค่า -> แท็บพื้นฐาน

  1. โดเมนของแอป: localhost
  2. คลิก " + เพิ่มแพลตฟอร์ม " และเลือก " เว็บไซต์ "
  3. URL ของไซต์: http: // localhost: <port> / ( <port>คือหมายเลขพอร์ตของคุณ)
  4. บันทึกการเปลี่ยนแปลง

3
ใช้งานไม่ได้s32.postimg.org/4qazo1sl1/…
shershen

4
ขอขอบคุณ! สิ่งนี้ได้ผลสำหรับฉัน (พฤษภาคม 2016) ประกาศ 127.0.0.1 ไม่ทำงาน
Milad M

ทำงานให้ฉันมิถุนายน 2017
Alaksandar Jesus Gene

ได้ผล! ธันวาคม 2017
Pandarian Ld

44
  1. ปล่อยให้ App Domains ว่างไว้
  2. ไปที่เว็บไซต์ด้วยการเข้าสู่ระบบ Facebook
  3. เพิ่ม http://localhost:port_number/
  4. บันทึกการเปลี่ยนแปลงแล้วลองอีกครั้ง ดูข้อมูลเพิ่มเติมได้ที่

http://developers.facebook.com/docs/samples/canvas/ Happy coding :-)


3
Developers.facebook.com/docs/opengraph/getting-started - น่าจะเกี่ยวข้องมากกว่า
fflyer05

7
ไม่สามารถรับ localhost ให้ทำงานภายใต้ App Domain ตั้งค่าการตั้งค่าขั้นสูง | 'URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง' เป็น url localhost (http: // localhost: port #) ดูgithub.com/tschellenbach/Django-facebook/issues/376
โจ

2
"เว็บไซต์ที่เข้าสู่ระบบ Facebook" หมายความว่าอย่างไร? ตัวเลือกข้าง "App Domains"? ไม่เห็นเป็นไรเลย การเพิ่มรายการ localhost ใน "การตั้งค่าขั้นสูง | URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง" ใช้ได้ผลสำหรับฉัน
Pierre de LESPINAY

ทำแล้วยังคงได้รับข้อผิดพลาด: "URL ที่ระบุไม่ได้รับอนุญาตโดยการกำหนดค่าแอปพลิเคชัน"
Ram Rachum

1
ทำงานได้ดี ฉันต้องการแสดงความคิดเห็นว่าสิ่งนี้ใช้ได้กับ 'localhost' เท่านั้นเช่นเดียวกับในคำตอบ ฉันลองใช้127.0.0.1:8000แล้วไม่ได้ผล
ePi272314

30

สิ่งนี้มีการเปลี่ยนแปลงไปบ้างในช่วงหลายปีที่ผ่านมา แต่ฉันเพิ่งใช้งานได้กับเว็บแอปที่ฉันใช้งานบน localhost นี่คือสิ่งที่ฉันทำ:

  1. ไปที่https://developers.facebook.com/apps
  2. เลือกแอปของคุณ
  3. เลือกการตั้งค่า> พื้นฐานจากแถบนำทางด้านซ้ายมือ
  4. คลิกปุ่มเพิ่มแพลตฟอร์มที่ด้านล่างของหน้า
  5. คลิกเว็บไซต์
  6. ป้อนhttp://localhost:8080/URL ของไซต์
  7. คลิกปุ่มเริ่มต้นอย่างรวดเร็วทางด้านขวาสุดของ URL ไซต์ที่คุณเพิ่งป้อน
  8. แท็บใหม่จะเปิดขึ้น บนแท็บนั้นให้เลื่อนลงไปที่ส่วน "แจ้งให้เราทราบเกี่ยวกับเว็บไซต์ของคุณ" และป้อนhttp://localhost:8080/URL ของไซต์อีกครั้ง
  9. คลิกปุ่มถัดไป
  10. พยายามเข้าสู่ระบบอีกครั้งและได้ผลในครั้งนี้

โชคดี!


2
มีวิธีใช้สองโดเมนไหม localhost และโดเมนที่ใช้ในการผลิต: /
JCarlosR

ไม่ทำงาน: ยังติดอยู่ที่ URL ถูกบล็อก: การเปลี่ยนเส้นทางนี้ล้มเหลวเนื่องจาก URI การเปลี่ยนเส้นทางไม่อยู่ในรายการสีขาวในการตั้งค่า OAuth ไคลเอ็นต์ของแอป ตรวจสอบให้แน่ใจว่าการเข้าสู่ระบบ OAuth ของไคลเอ็นต์และเว็บเปิดอยู่และเพิ่มโดเมนแอปทั้งหมดของคุณเป็น URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง
Nikunj Dhimar

28

โซลูชันการทำงานปี 2018

ฉันใช้เวลานานกว่าจะคิดออกดังนั้นฉันจะแบ่งปันวิธีแก้ปัญหาของฉัน

ฉันลองใช้คำตอบที่แนะนำทั้งหมด แต่ไม่มีอะไรได้ผลสำหรับฉันและในที่สุดสิ่งที่ฉันต้องทำก็คือไปที่https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/และเพิ่มของฉัน URL เรียกกลับแบบเต็มในURI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องช่อง

ในกรณีของฉันโดยใช้ Ruby on Rails, URL http://localhost:3000/user/auth/facebook/callbackของฉันมองเช่นนี้

และทันทีที่ฉันเพิ่มมันทุกอย่างก็เริ่มทำงาน! หวังว่านี่จะช่วยคนอื่นที่ประสบปัญหานี้


ขอขอบคุณ! น่าแปลกใจที่คุณมีวิธีแก้ปัญหาที่สมบูรณ์แบบสำหรับช่วงเวลาปัจจุบัน! ไชโย
nakhodkin

ใช่ขอบคุณ. สิ่งนี้ได้ผลสำหรับฉัน ฉันเพิ่มlocalhost: 5001ในส่วน: URI เปลี่ยนเส้นทาง OAuth ที่ถูกต้องและเปิดใช้งาน: การเข้าสู่ระบบ OAuth เบราว์เซอร์ฝังตัว
David John Coleman II

สิ่งนี้ใช้ได้ผลกับฉันด้วย นี่คือโซลูชันการทำงานในปัจจุบัน ฉันสร้างแอปเวอร์ชันทดสอบสำหรับการเข้าสู่ระบบ Facebook จาก localhost (จนกว่า Facebook จะเปลี่ยนอีกครั้ง!)
แดง

3
ขอขอบคุณ! PITA. หลังจากที่ฉันเพิ่มสิ่งนั้นการแจ้งเตือนนี้ก็ปรากฏขึ้น ในเดือนมีนาคมเรากำลังอัปเดตการรักษาความปลอดภัยสำหรับการตั้งค่าแอปของคุณซึ่งจะทำให้การโทรจาก URI ไม่ถูกต้องที่ไม่อยู่ในช่อง URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องด้านล่างการอัปเดตนี้ตอบสนองต่อกิจกรรมที่เป็นอันตรายที่เราเห็นบนแพลตฟอร์มของเราและเราต้องการป้องกัน แอปหรือเว็บไซต์ของคุณโดยต้องการโหมดเข้มงวดใหม่สำหรับการเปลี่ยนเส้นทาง URIs ดูเหมือนว่าพวกเขาจะเริ่มเร็ว
dbinott

1
ขอบคุณ! ฉันก็ใช้เวลานานเช่นกัน (จนกว่าฉันจะพบคำตอบนี้) ปัญหาคือข้อผิดพลาดที่คุณได้รับจาก FB แนะนำว่าคุณควรเพิ่มโดเมนของคุณใน "โดเมนของแอป" ซึ่งไม่มีส่วนเกี่ยวข้องกับปัญหาที่แท้จริง ขอบคุณที่เสียเวลาอีกครั้ง FB :(
Arno van Oordt

11

นี่คือสิ่งที่ฉันเคยทำ

หากคุณใช้ Windows คุณต้องแก้ไขไฟล์โฮสต์ ตำแหน่งไฟล์โฮสต์จะอยู่ที่%SystemRoot%\System32\drivers\etc\

เพิ่มบรรทัดใหม่ในไฟล์โฮสต์เช่นนี้

127.0.0.1    localhost.YOUR-SITE-NAME.com

บันทึกไฟล์โฮสต์

ไปที่แผงควบคุมการตั้งค่าแอพ FB และให้localhost.YOUR-SITE-NAME.comในฟิลด์โดเมนแอพ บันทึกการเปลี่ยนแปลง.

ตอนนี้โหลดสภาพแวดล้อมในท้องถิ่นเช่นlocalhost.YOUR-SITE-NAME.comจากเบราว์เซอร์ของคุณ

หมายเหตุ: เปลี่ยนชื่อเว็บไซต์ของคุณด้วยชื่อโดเมนของคุณ


7

โซลูชันการทำงาน (สิงหาคม 2018)

ขั้นแรกให้เลือกแอปของคุณในแดชบอร์ดนักพัฒนา

จากนั้นตรวจสอบให้แน่ใจว่าแอปของคุณอยู่ในโหมดการพัฒนาเนื่องจากอนุญาตให้ localhost ผ่าน HTTP โดยคลิกที่ปุ่มสลับที่อยู่ด้านขวาบนของหน้าแอปของคุณ

สุดท้ายโปรดปฏิบัติตามหมายเหตุด้านล่างเนื่องจากอาจทำให้เกิดปัญหาได้หากกรอกข้อมูลไม่ถูกต้อง:

  • Settings > Basic > App Domains ควรว่างเปล่า
  • Products > Facebook Login > Settings > Valid OAuth Redirect URIs ควรว่างเปล่า

มันยังใช้งานได้ไหม ฉันได้รับข้อผิดพลาดป้ายขาวหากฉันทำให้แอปอยู่ในโหมดการพัฒนา
sagar limbu

1
ฉันมีแอปที่มีประสิทธิผลเวอร์ชันทดสอบแอป (อยู่ในโหมดการพัฒนาเสมอ) ล้างฟิลด์ทั้งหมด แต่ยังคงได้รับข้อผิดพลาด: OAuthException URI missmatch
Andreas Richter

เมื่อแอปของคุณอยู่ในโหมดการพัฒนาคุณไม่สามารถทดสอบจุดสิ้นสุดใด ๆ ที่กำหนดให้คุณต้องส่งแอปของคุณได้
ricks

ขอบคุณพี่ชายนี่เป็นเรื่องยากที่จะคิดออกในที่สุด
Anthony

5

คุณสามารถปล่อยให้มันว่างเปล่าหรือการใช้งานlocalhost, http://localhost:85/my_app/คือ URL


ใช่ฉันรู้ว่ามันเป็น url แต่ dats wot ทำในบทช่วยสอนและเขาอ้างว่ามันใช้งานได้ ... นั่นคือเหตุผลที่ฉันลอง ... โดยวิธีที่ฉันได้ลอง localhost: 85 แต่มันไม่ทำงาน แต่เมื่อ ฉันลอง localhost เท่านั้นมันใช้งานได้ ... เหตุผลที่ฉันต้องการใช้: 85 เพราะนั่นคือพอร์ตที่ apache ของฉันใช้ ...
Sanya Tobi

พอร์ตเป็นข้อมูลโปรโตคอลคุณไม่จำเป็นต้องใช้สำหรับฟิลด์นั้น ตามที่ระบุข้อความ: ไม่ควรมีข้อมูลโปรโตคอล
phwd

การปล่อยให้ว่างเปล่าเป็นเคล็ดลับ และอีกสิ่งหนึ่งที่ไม่ยอมรับlocalhostว่าเป็นชื่อโดเมน
shashwat

3

เมื่อฉันเขียนบทช่วยสอนนั้นในเวลานั้นพอร์ตได้รับอนุญาตในโดเมนแอป และฉันสามารถรันแอพด้วย 81 พอร์ต (เซิร์ฟเวอร์ wamp) ได้ ตอนนี้ดูเหมือนว่า facebook ไม่อนุญาตให้ใช้ port ใน url คุณสามารถใช้localhostในโดเมนแอป

ฉันจะอัปเดตข้อมูลโดยเร็วที่สุด ฉันกำลังพยายามหาวิธีแก้ปัญหา

วิธีแก้ปัญหาชั่วคราวคือใช้ localtunnel http://progrium.com/localtunnel/


3

ฉันทดสอบแล้วและใช้ได้ผลสำหรับฉัน [กุมภาพันธ์ 2020]:

  1. ติดตั้ง ngrok และรับ https url ของคุณ (ตัวอย่าง: https://a3asdf23.ngrok.io )
  2. ไปที่การตั้งค่าแผงควบคุม FB App (ขั้นพื้นฐาน) -> ภายใต้โดเมน App -> เพิ่ม,https://a3asdf23.ngrok.iohttps://ngrok.io
  3. ในหน้าเดียวกันทั้งหมดเลื่อนลงวิธีการเพิ่มแพลตฟอร์ม (เว็บไซต์) ตั้งค่า URL https://a3asdf23.ngrok.ioเป็น ไม่จบเลยคลิก QuickStart -> ใต้ "บอกเราเกี่ยวกับเว็บไซต์ของคุณ" ใส่ https://a3asdf23.ngrok.ioURL
  4. จากนั้นไปที่ผลิตภัณฑ์ -> Facebook เข้าสู่ระบบ -> Settings -> การตั้งค่าไคลเอ็นต์ OAuth -> ที่ถูกต้อง OAuth เปลี่ยนเส้นทางยูริ -> เพิ่มเหล่านี้https://a3asdf23.ngrok.io, ,https://ngrok.iohttps://a3asdf23.ngrok.io/{your-redirect-uri}

และนี่คุณไป ขอบคุณฉันในภายหลัง :)



1

https://ngrok.com

ไปที่ลิงก์https://ngrok.com/เพื่อดาวน์โหลด ngrok และแตกไฟล์นั้น เปิด cmd (ค้นหา cmd) ไปที่ไดเร็กทอรีที่แตก ngrok เปิด ngrok จากบรรทัดคำสั่งเช่น c: /ngrok/ngrok.exe [port] หรือ cd c: / ngrok จากนั้น ngrok 80 (ngrok [port]) คุณจะได้รับ

เง็ก

Tunnel Status                 online
Version                       1.3/1.3
Forwarding                    http://3ahsdfhska.ngrok.com -> 127.0.0.1:80
Forwarding                    https://3ahsdfhska.ngrok.com -> 127.0.0.1:80
Web Interface                 http://127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

อย่าลืมตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ wamp ของคุณเปิดอยู่บนพอร์ตเดียวกัน ... (วิธีตรวจสอบ -> goto-> wampicon-> apache-> httpd.conf ค้นหาพอร์ตหรือ 80 (ค่าเริ่มต้น) ใช้สำหรับ ngrok.exe 80)

http://3ahsdfhska.ngrok.com

จะเป็น URL สำหรับเข้าถึง localhost ของคุณทางออนไลน์


ฉันต้องการทดสอบ ngrok เพื่อ fowd ไปยัง servlet ของฉัน servlet ของฉันทำงานบนเส้นทางที่ระบุ FO หรือตัวอย่าง: localhost: 8080 / plugins / servlet ฉันจะสั่งให้ ngrok fwd ที่นั่นได้อย่างไร
Jorge Valois

1

ฉันลองวิธีแก้ปัญหาทั้งหมดที่กล่าวถึงที่นี่ แต่ไม่มีวิธีใดได้ผล

สิ่งที่ช่วยแก้ปัญหาของฉันคือการคัดลอก "URI การเปลี่ยนเส้นทาง OAuth" จาก firebase ไปยังแอป facebook "URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง"

ฉันปล่อยโดเมนทั้งหมดว่างไว้


ยืนยันได้ว่านี่เป็นสิ่งเดียวที่ใช้ได้ในเดือนมกราคม 2564
sanderdebr

0

หากคุณได้รับข้อผิดพลาดของโปรโตคอลคุณไม่เพียง แต่ต้องลบ Http: // เท่านั้น แต่หากมีแบ็กสแลชที่ท้ายที่อยู่เว็บคุณต้องลบออกด้วยไม่เช่นนั้นจะไม่ได้ผล ฉันทำสิ่งนี้แล้วและมันก็ทำงานได้อย่างสมบูรณ์แบบ! ฮอล!


0

โยนอีกหนึ่งวิธีในการผสม:

ฉันตั้งค่าเว็บไซต์ตามคำแนะนำจากนั้นเพิ่มแอพที่สอง (Facebook Canvas) และตั้งค่า URL http://localhost:XXXXXนั้นเป็น ตอนนี้ฉันสามารถเข้าถึง FB ได้ทั้งในประเทศและในการผลิต


0

ฉันพัฒนาในพื้นที่และฉันใช้ URL นี้: localhost/fb

จากนั้นฉันต้องเพิ่มเว็บไซต์ด้วย URL ต่อไปนี้: http://localhost

ภายใต้App โดเมนlocalhostฉันเพิ่ม

ตอนนี้ใช้งานได้แล้ว ปัญหาเดียวที่ฉันพบคือคุณต้องใช้ URL นี้ในสคริปต์ทั้งหมดของคุณ เช่น

$loginUrl = $helper->getLoginUrl('http://localhost/fb/login-callback.php', $permissions);

คุณใช้127.0.0.1ที่นี่ไม่ได้...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.