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 là 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.
Ý 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. –
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. –
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