Câu trả lời:
Chỉnh sửa: 2-15-2012 Đây là cách sử dụng xác thực FB cho trang web localhost.
Tôi thấy việc mở rộng và thuận tiện hơn để thiết lập ứng dụng Facebook thứ hai. Nếu tôi đang xây dựng MyApp, thì tôi sẽ tạo một cái thứ hai gọi là MyApp-dev.
Website
hộp kiểm bên dưới 'Chọn cách ứng dụng của bạn tích hợp với Facebook' (Trong phiên bản Facebook gần đây, bạn có thể tìm thấy mục này trong Cài đặt> Cơ bản> Thêm nền tảng - Sau đó chọn trang web)nếu Rails.env == 'phát triển' || Rails.env == 'kiểm tra' Rails.application.config.middleware.use OmniAuth :: Builder do nhà cung cấp: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET' kết thúc khác # Sản xuất Rails.application.config.middleware.use OmniAuth :: Builder do nhà cung cấp: facebook, 'PRODMENT_APP_ID', 'PRODMENT_APP_SECRET' kết thúc kết thúc
Tôi thích phương pháp này vì một khi nó được thiết lập, đồng nghiệp và các máy khác không có thiết lập bổ sung.
Tất nhiên bạn có thể, chỉ cần thêm url localhost (không có "http") trong app_domain của bạn và sau đó thêm vào site_url của bạn http://localhost
(với http)
Cập nhật
Facebook thay đổi mọi thứ ngay bây giờ, chỉ cần vào cài đặt ứng dụng và trong url trang web chỉ cần thêm http: //localhost
và để trống Miền ứng dụng
Đây là cấu hình của tôi và nó hoạt động tốt cho API PHP:
miền ứng dụng
http://localhost
URL trang web
http://localhost:8082/
LƯU Ý: Kể từ năm 2012, Facebook cho phép đăng ký "localhost" dưới dạng Url trả về. Bạn vẫn có thể cần cách giải quyết tương tự cho các nhà cung cấp khác (ví dụ như Microsoft).
Nếu bạn cần tên miền thực được đăng ký với Facebook (như my.really.own.domain.com), bạn có thể chuyển hướng yêu cầu cục bộ sang tên miền này đến máy của mình. Cách tiếp cận dễ dàng nhất trên mọi hệ điều hành là thay đổi tệp "hosts" để ánh xạ tên miền thành 127.0.0.1 (xem http://technet.microsoft.com/en-us/l Library / bb727005.aspx#EDAA và https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).
Tôi thường sử dụng Fiddler để làm điều đó cho tôi (trên Windows với IIS cục bộ) - xem các mẫu trên http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .
if (oSession.HostnameIs("my.really.own.domain.com")) {
oSession.host="localhost:80";
}
Phương pháp tiếp cận tệp của máy chủ lưu trữ không hoạt động với Visual Studio Development Server vì nó yêu cầu các Url đến phải là localhost / 127.0.0.1. Nếu bạn cần làm việc với nó (hoặc có thể với IIS express) để ghi đè máy chủ - Sử dụng Fiddler với IIS7 Express
Với trung tâm phát triển mới, giờ đây dễ dàng hơn:
1) Để trống tên miền ứng dụng.
2) Nhấp vào Thêm nền tảng
3) URL trang web phải bằng đường dẫn đầy đủ của máy chủ lưu trữ cục bộ của bạn.
4) Lưu thay đổi
Tôi vừa phát hiện ra một cách giải quyết: Bạn có thể truy cập máy cục bộ của mình bằng cách sử dụng http://localtunnel.com . Bạn sẽ cần (tạm thời) thay đổi một số URL được sử dụng trong mã ứng dụng / html để liên kết trỏ đến tên miền tạm thời, nhưng ít nhất facebook có thể truy cập vào máy của bạn.
Trong cài đặt cơ bản của ứng dụng của bạn ( https://developers.facebook.com/apps ) trong Cài đặt-> Cơ bản-> Chọn cách ứng dụng của bạn tích hợp với Facebook ...
Sử dụng "URL trang web:" và "URL trang web di động:" để giữ các URL sản xuất và phát triển của bạn tương ứng. Cả hai trang web sẽ được phép xác thực. Tôi chỉ đang sử dụng Facebook để xác thực nên tôi không cần bất kỳ tính năng chuyển hướng trang di động nào. Tôi thường thay đổi "URL trang web di động:" thành trang web "localhost: 12345" của mình trong khi tôi đang kiểm tra xác thực và sau đó đặt nó trở lại bình thường khi tôi hoàn thành.
Có ! Giải pháp của tôi hoạt động khi bạn tạo một ứng dụng, nhưng bạn muốn sử dụng xác thực facebook trên trang web của mình. Giải pháp dưới đây KHÔNG cần thiết khi bạn muốn tạo một ứng dụng được tích hợp vào trang FB.
Vấn đề là bạn không thể đặt "localhost" làm tên miền trong trang cấu hình facebook của ứng dụng. Lý do an ninh ?
Bạn cần truy cập tệp máy chủ của mình, trong OSX / Linux, v.v. / máy chủ và thêm dòng sau: 127.0.0.1 dev.yourdomain.com
Tên miền bạn đặt bất cứ điều gì bạn muốn. Một sai lầm là thêm dòng này: localhost dev.yourdomain.com (ít nhất là trên con báo tuyết osx không hoạt động).
Sau đó, bạn phải xóa bộ nhớ cache dns của bạn. Trên OSX: gõ dscacheutil -flushcache trong thiết bị đầu cuối. Cuối cùng, hãy quay lại trang web của nhà phát triển facebook trực tuyến và trong trang cấu hình của ứng dụng của bạn, bạn có thể thêm tên miền "dev.yourdomain.com".
Nếu bạn sử dụng một chương trình như Mamp, Easyphp hoặc bất cứ điều gì, hãy đảm bảo rằng cổng cho Apache là 80.
Giải pháp này sẽ hoạt động cho Windows vì nó cũng có tệp lưu trữ. Tuy nhiên, theo như tôi nhớ thì Windows 7 không sử dụng tệp này nữa, nhưng thủ thuật này sẽ hoạt động nếu bạn tìm cách buộc các cửa sổ sử dụng tệp lưu trữ.
Bạn phải chọn sản phẩm Facebook 'đăng nhập facebook' và bật Đăng nhập OAuth của khách hàng, 'Đăng nhập web OAuth' và 'Trình duyệt nhúng OAuth Đăng nhập' sau đó ngay cả khi bạn cung cấp url localhost Nó sẽ hoạt động
điều này hoạt động vào tháng 6 năm 2018, ngay cả sau khi yêu cầu HTTPS. Nó xuất hiện một ứng dụng thử nghiệm không yêu cầu https:
tạo một ứng dụng thử nghiệm: https://developers.facebook.com/docs/apps/test-apps/
sau đó trong ứng dụng thử nghiệm, hãy làm theo các bước đơn giản trong video này: https://www.youtube.com/watch?v=7DuRvf7Jtkg
Tôi nghĩ bạn sẽ có thể phát triển các ứng dụng bằng máy chủ web phát triển phòng thu trực quan: Bắt đầu ứng dụng FaceBook mới trên: http://www.facebook.com/developers/ . Sau đó, đặt cài đặt cho Url trang web và url canvas cho phiên bản đang chạy của trang web của bạn, ví dụ: http: // localhost: 1062 /
Dưới đây là một số liên kết sẽ giúp bạn bắt đầu với FaceBook:
Hi vọng điêu nay co ich.
Thử cái này ---
https://www.facebook.com/help/community/question/?id=589302607826562
1 - Nhấp vào Ứng dụng và sau đó chọn ứng dụng của bạn.
2 - Nhấp vào nút Cài đặt ở bên trái màn hình.
3 - Trong cài đặt Cơ bản, nhấp vào nút Thêm Nền tảng bên dưới cấu hình cài đặt.
4 - Chọn trang web trong hộp thoại nền tảng.
5 - Nhập URL của bạn (localhost hoạt động ở đây).
6 - Trong kiểu nhập văn bản Miền ứng dụng, hãy thêm tên miền khớp với tên miền trong URL.
7 - Lưu cài đặt của bạn.
Giả sử bạn đã đăng ký ứng dụng của mình dưới dạng:
app.domain.com
Bạn chỉ cần sửa đổi tệp / etc / hosts bằng cách thêm
127.0.0.1 dev01.app.domain.com
Sau đó, sửa đổi cấu hình apache của bạn
ServerName dev01.app.domain.com
và khởi động lại apache.
Bạn sẽ cần đặt URL của mình vào một biến để sử dụng nó làm tham số XML cho một số cuộc gọi:
<fb:login-button registration-url="http://<?=$URL?>/register" />
Không có đủ tín dụng để nhận xét về câu trả lời được bình chọn hàng đầu, nhưng ít nhất trong môi trường đường ray của tôi (chạy 4), đường ray http://localhost:3000
không có http://www.localhost:3000
. Khi tôi thay đổi nó http://localhost:3000
, nó hoạt động tốt. Không cần chỉnh sửa bất kỳ tập tin máy chủ.
Ứng dụng sẽ chạy tốt trong localhost: 3000, bạn chỉ cần chỉ định địa chỉ https mà ứng dụng sẽ hoạt động khi ở chế độ sản xuất.
Tùy chọn 2 là cung cấp url hoặc trang web heroku cho phép bạn có ứng dụng mẫu trong chế độ sản xuất.
Cập nhật mới nhất: Bạn không cần phải cung cấp bất kỳ url nào nếu bạn đang thử nghiệm nó trong quá trình phát triển. Bạn có thể để các trường trống. Hãy chắc chắn rằng ứng dụng của bạn đang ở chế độ phát triển. Nếu không tắt trạng thái từ trực tiếp.
Không cần phải cung cấp url trang web, tên miền ứng dụng hoặc chuyển hướng hợp lệ oauth uri.