2010-07-20 13 views
12

tôi muốn sử dụng localhost để phát triển ứng dụng trang web facebook bằng cách sử dụng biểu đồ api. tôi làm việc trong asp.net C#Tôi có thể sử dụng localhost trong khi phát triển trang web biểu đồ facebook bằng cách nào?

trong api trước của facebook tôi đã sẵn sàng viết http://localhost:4300/ trong url kết nối tại cài đặt ứng dụng.

hiện tại công việc này rất hữu ích. nó giữ cho tôi Đã xảy ra lỗi với tên ứng dụng. Vui lòng thử lại sau.

bất kỳ đề xuất nào?

** nếu tôi tải lên trang web và sử dụng url coonect của trang web, URL đó đang hoạt động.

Trả lời

0

Bạn có chắc chắn rằng sự cố liên quan đến tên DNS và/hoặc cổng máy chủ web của bạn không? Nếu có, bạn có thể sử dụng IIS cục bộ của mình thay vì máy chủ webdev, định cấu hình trang web yourdomain.com và thêm mục nhập vào máy chủ cho biết 127.0.0.1 yourdomain.com

0

Nếu tôi hiểu chính xác những gì bạn đang cố gắng và cài đặt ứng dụng trên trang web của Facebook, Facebook sẽ không thể kết nối với máy tính của bạn bằng 'localhost'. Nhận địa chỉ IP của máy tính của bạn và nhập địa chỉ đó vào trang cài đặt ứng dụng.

Để tìm IP của bạn: http://whatismyipaddress.com/

0

Bạn phải tạo một đường hầm ssh TỪ phát triển máy chủ để máy tính localhost của bạn. Mỗi yêu cầu đối với máy chủ dev sẽ được máy tính của bạn xử lý và gửi lại.

21

Facebook không quan tâm địa chỉ IP thực tế mà máy chủ của bạn đặt tại - nhưng nó sẽ kiểm tra xem tên miền của trang giới thiệu có giống với tên miền bạn đã đăng ký với facebook hay không. Bí quyết để làm cho nó hoạt động trong quá trình phát triển là tìm cách sử dụng tên miền của bạn ngay cả khi bạn chỉ làm việc trên máy tính địa phương để phát triển.

Nếu bạn có toàn quyền kiểm soát bản ghi DNS, bạn có thể thêm bản ghi máy chủ (ví dụ: 'test.yourdomain.com') hoặc trỏ vào địa chỉ IP thực của máy phát triển của bạn (nếu đó là ip tĩnh) hoặc đơn giản chỉ cần 127.0.0.1

Nếu bạn không có quyền truy cập vào DNS của mình thì cách dễ nhất để thực hiện điều này trong quá trình phát triển là chỉ cần thêm mục nhập vào tệp lưu trữ trên máy tính của bạn ('/ etc/hosts' trên OSX) hầu hết các máy unix khác) chỉ tên miền bạn đã đăng ký tại facebook vào máy chủ lưu trữ cục bộ của bạn. do đó, bạn sẽ thêm một dòng như sau:

127.0.0.0 test.yourdomain.com 

vào cuối tệp lưu trữ của bạn. Điều đó có nghĩa rằng nếu bây giờ bạn nhập test.yourdomain.com trong trình duyệt web của bạn, nó sẽ giải quyết cho máy cục bộ của bạn.

Hiện tại - trong phần "trang web" của thiết lập ứng dụng trong Facebook, hãy đảm bảo bạn đã thêm tên miền của mình vào phần "tên miền trang web" của cài đặt - điều này có nghĩa là facebook sẽ chấp nhận yêu cầu đến từ bất kỳ tên miền phụ nào của miền của bạn - nói cách khác, nó sẽ chấp nhận các yêu cầu từ cả "www.yourdomain.com" (máy chủ sản xuất của bạn) và "test.yourdomain.com" (máy phát triển cục bộ của bạn).

Bây giờ bạn chỉ có thể phát triển trên máy cục bộ của mình bằng cách sử dụng url "test.yourdomain.com" trong trình duyệt thay vì 'localhost' và mọi thứ sẽ hoạt động.

OH - một điều nữa - uri chuyển hướng facebook cũng sẽ cần phải có số cổng nếu máy chủ phát triển của bạn không chạy trên cổng 80, nhưng nó bao gồm số cổng này khi khớp với url miền (thẳng thắn tôi xem xét điều này một lỗi trong các API của Facebook). Điều này có nghĩa rằng nếu máy chủ phát triển của bạn (ví dụ) chạy trên cổng 8080 thì bạn sẽ cần phải thêm ': 8080' vào cuối tên máy chủ trong URI chuyển hướng, nhưng nếu máy chủ sản xuất của bạn chạy trên cổng 80 sau đó bạn không nên đặt ": 80" trong chuyển hướng uri vì nếu không nó sẽ chỉ hoạt động khi mọi người đã bao gồm rõ ràng số cổng trong URL họ đã sử dụng để xem trang của bạn (không có trong máy chủ sản xuất). Điều này tất cả có nghĩa là trong thực tế là bạn chỉ cần có một điều kiện để khi tạo URL xác thực facebook, bạn chỉ bao gồm số cổng nếu nó không phải là cổng 80.

+0

Ý tưởng tuyệt vời - tại sao tôi không nghĩ về điều đó? Tôi vừa sửa đổi các tập tin Hosts, và nó hoạt động hoàn toàn tốt đẹp. –

+0

Cảm ơn bạn! Đây là giải pháp cho sự đau đớn "URL đã cho không được cấu hình Ứng dụng cho phép: Một hoặc nhiều URL đã cho không được cài đặt của ứng dụng cho phép. URL này phải khớp với URL của trang web hoặc URL Canvas hoặc tên miền phải là tên miền phụ của một trong các miền của ứng dụng. " thông điệp. Tôi trích dẫn nó ở đây đầy đủ để nó được lập chỉ mục và mọi người tìm thấy câu trả lời này dễ dàng khi tìm kiếm các bản sửa lỗi. –

+0

trong cài đặt ứng dụng facebook, trong miền ứng dụng, tôi liệt kê local.app.com:3000 và app.com cả hai. đã làm việc. – Ken

3

Thêm "localhost" vào cài đặt "Miền ứng dụng" ứng dụng của bạn trên Facebook. Ngoài ra, nếu bạn đang làm điều gì đó như chuyển hướng "MyApp.test" thành 127.0.0.1 trên máy chủ cục bộ của mình, bạn cũng có thể thêm "MyApp.test" vào "App Domain" và nó sẽ hoạt động.

Tôi vừa thử điều này sau khi tìm kiếm giải pháp cho vấn đề này. Nó là một giải pháp rất đơn giản.

2

Kiểm tra sau Cài đặt cơ bản trong cấu hình của Facebook ứng dụng của bạn:

  • Namespace đã được thiết
  • App miền bao gồm "localhost"
  • Canvas URL và Secure Canvas URL cả hai đều có một lĩnh vực "localhost "trong URL của họ

Nếu bạn gặp lỗi" tên ứng dụng "khi bạn lưu cài đặt cấu hình của ứng dụng, bạn có chắc chắn tên của ứng dụng hợp lệ và không đã được thực hiện? Chúng tôi sử dụng localhost (với ASP.Net, IISExpress và số cổng rất cao) mọi lúc với bốn hoặc năm ứng dụng khác nhau với nhiều người dùng trên các máy khác nhau và không bao giờ thực hiện bất kỳ bước bổ sung nào mà một số người đã mô tả trong câu trả lời của họ.

EDIT: sau khi đọc lại các câu trả lời khác, tôi đoán một số nhà phát triển đang phát triển trên cùng một ứng dụng Facebook khi họ sử dụng để sản xuất, vì vậy họ cần ánh xạ máy của họ vào miền sản xuất? Chúng tôi không làm điều đó, chúng tôi có hai "ứng dụng". Một là để thử nghiệm với cấu hình localhost và một cho sản xuất. Chúng tôi có một thành phần xác định thời gian chạy mà môi trường trong và xây dựng tất cả các URL cần thiết như OAuth chuyển hướng bằng ID ứng dụng và Bí mật ứng dụng để chúng tôi luôn chạy cùng một mã, chỉ cấu hình khác nhau được triển khai trên các máy chủ khác nhau.

0

Bạn không thể thêm tên miền cấp cao nhất trên thiết lập Facebook FYI