Phát triển Facebook trong localhost


177

Chỉ muốn biết liệu có cách nào tôi có thể phát triển ứng dụng Facebook trong localhost không.

Câu trả lời:


246

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.

  • Tạo một ứng dụng mới tại https://developers.facebook.com/apps
  • (15/2/2012 mới) Nhấp vào Websitehộ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)
  • Đặt trường URL trang web ( KHÔNG phải trường Tên miền ứng dụng ) thành http: //www.localhost: 3000 (địa chỉ này dành cho Ruby on Rails, thay đổi khi cần)

nhập mô tả hình ảnh ở đây

  • Trong trình khởi tạo ứng dụng của bạn, hãy nhập mã để phát hiện môi trường
    • Mẫu Rails 3 mã
      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.


3
+ 1ed Điều này thật lạ! Mọi người nói rằng bạn không thể thêm localhost làm url ứng dụng của mình. Nhưng nó chỉ đơn giản là làm việc cho tôi. Cảm ơn bạn!
Keyne Viana

15
Đây vẫn là trường hợp cho bạn? Tôi dường như không thể thêm localhost hoặc 127.0.0.1 giáp000 hoặc bất cứ thứ gì tương tự như miền ứng dụng của tôi cho Facebook.
Pete

Tôi vừa thử tạo một cái mới và gặp phải vấn đề 'tên miền không hợp lệ'. Cảm ơn bạn đã bắt
Eric Hu

1
@zoltarSpeaks Xem câu trả lời cập nhật của tôi. Bạn phải sử dụng một lĩnh vực khác, không phải "miền ứng dụng"
Eric Hu

1
điều này sẽ ghi đè lên trình khởi tạo / devise.rb's config.omniauth: facebook, 'APP_KEY', 'APP_SECRET' ,: scope => "email, offline_access .."?
biến mất

26

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: //localhostvà để trống Miền ứng dụng


Điều này hoàn toàn hoạt động. Không cần bất cứ điều gì về phía hàng rào của chúng tôi.
Godspeedelbow

10
Điều này không còn hiệu quả nữa khi bạn gặp lỗi không thể thêm các tên miền cấp cao nhất
Josh Bedo

20

Đâ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/

1
phải điền vào cả hai kiểu nhập văn bản đó để localhost hoạt động
paulruescher

19

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#EDAAhttps: / /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


9

Facebook không còn cho phép URL gọi lại 'localhost' cho các ứng dụng FBML Facebook


đảm bảo rằng trong cài đặt bảo mật Facebook của bạn, bạn đã tắt 'Duyệt web an toàn'. Điều này sẽ làm cho localhost của bạn không khả dụng nếu được bật.
supajb

9

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


1
Xác nhận đây là cách tốt nhất để cài đặt localhost. Chỉ cần chèn URL cơ sở vào môi trường phát triển của bạn như trên - không có http: // và facebook sẽ nối thêm nó cho bạn. Những thứ đơn giản! Cảm ơn Jay
keade

1
Giải pháp đó đã giải quyết vấn đề của tôi khi chạy trên localhost
Rola

8

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.


7

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.


5

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ữ.


hoạt động cho win8.1 c: \ windows \ system32 \ driver \ etc \ hosts. Bạn có thể cần tuôn ra 'Bộ đệm bộ giải quyết máy chủ' trong chrome URL = chrome: // net-internals / # dns
rnrneverdies

5

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 nhập mô tả hình ảnh ở đây


Điều này đã giúp di chuyển vấn đề theo. Tin nhắn từ FB kể từ ngày 23/02/2018: Vào tháng 3, chúng tôi đang thực hiện cập nhật bảo mật cho cài đặt ứng dụng của bạn sẽ làm mất hiệu lực các cuộc gọi từ URI không được liệt kê trong trường URI chuyển hướng OAuth hợp lệ bên dưới. chúng tôi đã thấy trên nền tảng của chúng tôi và chúng tôi muốn bảo vệ ứng dụng hoặc trang web của bạn bằng cách yêu cầu một chế độ nghiêm ngặt mới để chuyển hướng URI.
Tim Tyler

1
Fb hiện yêu cầu https cho cuộc gọi lại. Localhost không hỗ trợ https.
huuthang

1
@huuthang nên toàn bộ Q / A này bị phản đối.
RGB


3

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:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experiences-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

Hi vọng điêu nay co ich.


3

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.


2

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" />

2

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:3000khô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ủ.


2

app domain : localhost

site URL : http://localhost:4440/

làm việc cho tôi với giao diện người dùng mới.


0

Giải pháp của tôi hoạt động tốt trong localhost ..... Đối với URL trang web sử dụng http://localhost/ và cho miền Ứng dụng sử dụng, localhost/folder_name mọi thứ đều giống nhau ....... nó hoạt động tốt (mặc dù nó hiển thị redflag trong App Domain..App đang hoạt động tốt)


0

Thật dễ dàng để truy cập bảng điều khiển ứng dụng trong cài đặt nhấp vào tab đăng nhập facebook, sau đó chọn Thực thi HTTP Không, lưu cài đặtnhập mô tả hình ảnh ở đây


0

Ứ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.

nhập mô tả hình ảnh ở đây


0

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.

nhập mô tả hình ảnh ở đây


1
Lưu ý rằng nếu bạn chuyển ứng dụng của mình từ "trực tiếp" sang "phát triển", bạn sẽ có thể đăng nhập từ localhost trên máy phát triển, nhưng TẤT CẢ NGƯỜI SỬ DỤNG SỐNG CỦA BẠN sẽ KHÔNG thể đăng nhập được nữa.
webdevbyjoss

Tôi đã làm điều này và nó vẫn báo lỗi và nút fb sẽ không hiển thị
joslinm

Sau khi tạo ứng dụng, nhấp vào nút "Tạo ứng dụng thử nghiệm" để tải ứng dụng chỉ để phát triển / thử nghiệm. Tôi vẫn cần thêm "localhost" vào miền ứng dụng.
Không có

@ J.Money Tôi nghĩ rằng nó có thể được thay đổi ngay bây giờ. Cảm ơn vì đã cho tôi biết.
Signingwar Vigneshwaran 17/12/19
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.