Cách kiểm tra Facebook Connect cục bộ


193

Tôi sử dụng API ASP .NET và Facebook Connect. nhưng khi tôi chạy ứng dụng và nhấn nút Kết nối, nó sẽ quay trở lại Trang web không phải là máy chủ thử nghiệm cục bộ ( http: // localhost: xxxx / test.aspx ) Vậy làm cách nào tôi có thể kiểm tra Facebook cục bộ (ví dụ: Làm thế nào tôi có thể thay đổi gọi lại URL) ?


4
Câu trả lời là đây: forum.developers.facebook.com/viewtopic.php?pid=116136 bạn phải chỉnh sửa tệp 'C: \ WINDOWS \ system32 \ driver \ etc \ hosts' để đưa tên miền của bạn đến localhost của bạn
Haytham

101
Hệ thống này dường như được triển khai khá kém về phía Facebook. Dường như không có ai xảy ra với họ rằng bất kỳ ai cũng muốn thử nghiệm tính năng này ngoài máy chủ trực tiếp. Hai giải pháp được đưa ra ở đây - chỉnh sửa tệp máy chủ cục bộ để giả mạo máy chủ sản xuất và chuyển hướng nó sang localhost và tạm thời thay đổi URL sản xuất trực tiếp trên Facebook sang localhost, cả hai đều là thiết kế xấu đáng chú ý trên phần của Facebook. Facebook cần thêm một số loại năng lực thử nghiệm vào hệ thống của họ.
Paul Legato

2
Một công việc xung quanh là có 3 ứng dụng -> trực tiếp, QA và Dev. Vì vậy, nếu ứng dụng chính của bạn là apps.facebook.com/ohnice/ QA và dev có thể là apps.facebook.com/ohnice_qa_sd/ là apps.facebook.com/ohnice_dev_fg/ có một cái gì đó ngẫu nhiên để bạn không có khách truy cập không mong muốn khi nhà của bạn không gọn gàng.
tgkprog

1
@PaulLegato nó được thực hiện ngay bây giờ (sau nhiều năm ...). Xem giải pháp của tôi hoặc một trong những giải pháp sử dụng tính năng kiểm tra.
Erdal G.

Câu trả lời:


236

Nó đủ đơn giản khi bạn tìm hiểu.

Mở /etc/hosts(unix) hoặc C:\WINDOWS\system32\drivers\etc\hosts.

Nếu tên miền của bạn là foo.com, thì hãy thêm dòng này:

127.0.0.1    local.foo.com

Khi bạn đang kiểm tra, hãy mở local.foo.comtrong trình duyệt của bạn và nó sẽ hoạt động.


4
Để chỉnh sửa tệp máy chủ của bạn trên MAC, sau đó chạy "sudo pico / private / etc / hosts" trong thiết bị đầu cuối của bạn, chỉnh sửa và nhấn "ctrl X" để lưu
Christoffer

@Christoffer: Tôi tin rằng / private / etc chỉ là một liên kết tượng trưng vào / etc, vì vậy / etc / hosts và / private / etc / hosts là cùng một tệp.
freeall

1
Bạn nói đúng ... nhưng một số người trong chúng ta cần phải ăn bằng thìa và nói "mở / etc / hosts" là không đủ;) FB vẫn thất bại cục bộ với giải pháp này đối với tôi. Tôi không sử dụng facebook JS
Christoffer

5
Điều này đã từng làm việc cho tôi cho đến gần đây nhưng bây giờ tôi nhận được connection refusedngoại lệ khi cố gắng đăng nhập, có thể là do một sự thay đổi ở phía facebook. bất kỳ ý tưởng của một công việc xung quanh được nhiều đánh giá cao.
onurmatik

1
Nếu bạn đang làm điều này để truy cập ứng dụng Rails đang chạy cục bộ, bạn có thể phải truy cập local.foo.com: 3000` trong trình duyệt của mình vì các ứng dụng Rails thường chạy trên cổng đó.
David Tuite

102

Chỉnh sửa ứng dụng của bạn tại www.facebook.com/developers/ và đặt "URL trang web" thành "http: // localhost / myapppath".

Khi hoàn thành - thay đổi nó trở lại.


19
Facebook không "kết nối" lại máy chủ của bạn. JS của họ không. Và JS chạy trong bối cảnh trình duyệt của bạn. Mà biết "localhost" trỏ đến đâu.
Alex

Nó sẽ không cho phép tôi thêm " localsite ", tôi phải đảm bảo rằng tôi có một dấu chấm trong đó. Điều này đã làm việc: " local.site "
Pete

Một số tính năng FB không hoạt động với điều này. Ví dụ: lưu thành tích vào máy chủ FB. Nó muốn HTTPS, vì vậy thủ thuật localhost của tôi không hoạt động :(
Kostadin

2
Điều đáng chú ý là việc xác thực trên biểu mẫu ứng dụng yêu cầu bạn sử dụng localhost trong url, ví dụ: http://localhost/myappthay vìhttp://myapp
graham

1
nếu bạn sử dụng một cổng khác, hãy sử dụng mẫu này: localhost: xxxx ), ví dụ: localhost: 8080
m0z4rt

77

Tôi khuyên bạn nên tạo một ứng dụng thử nghiệm (chỉ dành cho môi trường dev) trên https://developers.facebook.com/apps và đặt: thuộc Website with Facebook Logintính cho cài đặt localhost: [port] của bạn .
tùy chọn này sẽ hoạt động tốt mà không cần thay đổi máy chủ.
nhớ thay đổi appId trở lại ứng dụng sản xuất của bạn sau khi bạn phát trực tiếp.

Chỉnh sửa - trong phiên bản fb mới nhất, bạn sẽ tìm thấy nó trong settingstab. nhập mô tả hình ảnh ở đây


2
Hoặc chỉ sử dụng các tệp cấu hình riêng biệt cho, dev, dàn dựng và trực tiếp.
Chris Barry

1
Không thể tìm thấy "Trang web có đăng nhập Facebook" nữa.
yehe

5
Có vẻ như bạn phải nhấp vào nút ngang lớn màu xám "+ Thêm nền tảng". Ở đó bạn có "Trang web"
Luciano

75

Facebook đã thêm tính năng phiên bản thử nghiệm.

Đầu tiên, thêm phiên bản thử nghiệm của ứng dụng của bạn: Tạo Ứng dụng thử nghiệm

Tạo ứng dụng thử nghiệm

Sau đó, thay đổi URL Trang web thành " http: // localhost " trong Trang web và nhấn Lưu Thay đổi

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

Đó là tất cả, nhưng hãy cẩn thận: Các khóa ứng dụng IDứng dụng bí mật khác nhau cho ứng dụng và các phiên bản thử nghiệm của nó!


Tên miền ứng dụng trong bảng cài đặt là gì. Tôi đang phát triển ứng dụng ion với thông tin đăng nhập facebook
Chirag thaker 9/11/2016

1
@Chiragthaker Đây là miền sẽ được lưu trữ ứng dụng sản xuất
Erdal G.

3
Đây là câu trả lời tốt hơn nhiều trong trường hợp của tôi, hơn là chỉnh sửa hoststệp, vì nó không yêu cầu sử dụng HTTPS trên máy chủ thử nghiệm của tôi.
Petr Dlouhý

39

Bạn không phải làm bất cứ điều gì khó khăn!

Facebook → Cài đặt → Cơ bản:
viết " localhost " trong trường " Miền ứng dụng ", sau đó nhấp vào " + Thêm nền tảng " chọn " Trang web " .

Sau đó, trong " Site Url " lĩnh vực viết url localhost của bạn
(ví dụ: http://localhost:1337/something).

Điều này sẽ cho phép bạn kiểm tra các plugin facebook của mình cục bộ.


1
Có một cách giải quyết cho các tệp trong tệp đường dẫn: /// android_assets / www? facebook sẽ không cho phép đường dẫn đó cho url trang web
Vignesh Subramanian

phải là https ngay bây giờ
Simon_Weaver

@Simon_Weaver bạn lấy thông tin này từ đâu? nó được ghi lại ở đâu đó?
kolistivra


@Simon_Weaver từ liên kết mà bạn đã gửi: "Bạn vẫn có thể sử dụng HTTP với các địa chỉ cục bộ cục bộ, nhưng chỉ khi ứng dụng của bạn vẫn ở chế độ phát triển."
kolistivra

5

Facebook dường như vô hiệu hóa ngẫu nhiên khả năng đặt localhost làm tên miền trên ứng dụng facebook của bạn. Tôi tìm thấy công việc dễ nhất xung quanh là đường hầm localhost của tôi lên web. Điều này có thể được thực hiện miễn phí bằng cách sử dụng http://progrium.com/localtunnel/ hoặc với một url tùy chỉnh (dễ dàng hơn vì bạn không phải thay đổi url mọi lúc trong facebook) https://showoff.io


3
một lựa chọn đường hầm khác là ngrok.com
Mohamed Selim

3

Tôi không thể sử dụng các giải pháp khác ... Điều gì hiệu quả với tôi là cài đặt LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client), sau đó sử dụng url kết quả trên Facebook.


1

Có vẻ như FB vừa thay đổi trang nhà phát triển ứng dụng một lần nữa và thêm một tính năng gọi là "Danh sách trắng máy chủ IP".

  1. Truy cập ứng dụng của bạn và chọn Cài đặt -> Tab nâng cao
  2. Nhận IP công khai của bạn (google sẽ cho bạn biết nếu bạn google "IP của tôi là gì")
  3. Thêm IP công cộng của bạn vào Danh sách trắng Máy chủ IP và nhấp vào Lưu Thay đổi ở dưới cùng

Điều gì xảy ra nếu nhiều nhà phát triển từ các vị trí khác nhau đang làm việc trên trang web? Chúng tôi sử dụng VM (Vagrant) vì vậy IP giống nhau cho mọi nhà phát triển. Đáng buồn là facebook không cho phép sử dụng IP cục bộ trong Danh sách trắng. Nó không hoạt động.
Vấn

Nếu tôi đang đọc bình luận của bạn ngay thì đây không phải là vấn đề. Bạn cần đặt IP công cộng của mình, cái mà bạn nói là giống nhau cho mỗi nhà phát triển (ý bạn là KHÔNG giống nhau). Nếu bạn có nhiều nhà phát triển tại các trang web khác nhau có IP khác nhau, bạn có thể sử dụng VPN để định tuyến tất cả lưu lượng truy cập thông qua 1 IP.
Sevensevens

không, IP công cộng cho các máy khác nhau trên các vị trí khác nhau tất nhiên không giống nhau, chỉ IP cục bộ trên mỗi máy là như nhau. (ví dụ: localhost). Tôi không muốn định tuyến bất cứ điều gì. Hiện tại tôi đang sử dụng localhost (chỉ là một ví dụ) trong ứng dụng FB - hoạt động tốt. Nhưng tôi cần một giải pháp một khi trang đi vào hoạt động. Facebook cho phép tạo "Ứng dụng thử nghiệm" bên trong Ứng dụng, đó có thể là giải pháp nhưng tôi chưa thử. EDIT: dường như đó là giải pháp
Vấn

1

đi đến trang vải .. xem nó trong trình duyệt .. sao chép văn bản trên thanh địa chỉ. Bây giờ hãy vào ứng dụng facebook của bạn để chỉnh sửa cài đặt

trong trang web, trong url trang web dán địa chỉ đó

trong tích hợp facebook, một lần nữa dán địa chỉ đó vào url canvas

và cũng có cùng mã bất cứ nơi nào bạn yêu cầu url canvas hoặc url chuyển hướng ..

hy vọng nó sẽ giúp ..


-6

Tạo 2 ứng dụng và

Trong /initialulators/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
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.