2012-02-29 30 views
14

Tôi đã sao chép HTML bên dưới từ trang nhà phát triển Facebook 'Facebook cho trang web' và thay thế APPID bằng id ứng dụng của tôi. Tôi đặt trang này trên máy chủ web dev của tôi. Nếu tôi điều hướng đến trang, nó sẽ hiển thị nút đăng nhập tốt. Nhưng nhấp vào nút đăng nhập, nó sẽ mở trang đăng nhập Facebook có nội dung "Đã xảy ra lỗi. Vui lòng thử lại sau".Hộp thoại Facebook oauth hiển thị "Đã xảy ra lỗi. Vui lòng thử lại sau".

Tôi phải thiếu cái gì đó cơ bản. Bất kỳ ý tưởng?

<html> 
<head> 
    <title>My Facebook Login Page</title> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : 'APPID', 
     status  : true, 
     cookie  : true, 
     xfbml  : true, 
     oauth  : true // removed a comma after 'true' as it generates a script error 
     }); 
    }; 
    (function(d){ 
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     d.getElementsByTagName('head')[0].appendChild(js); 
    }(document)); 
    </script> 
    <div class="fb-login-button">Login with Facebook</div> 
</body> 
</html> 

Điều tra thêm cho thấy nó hoạt động tốt trong Chrome, Firefox và Safari và không hoạt động trong IE9.

Đây là địa chỉ nó đi vào trong Chrome, nó hoạt động tốt: https://www.facebook.com/login.php?api_key=255367907914&skip_api_login=1&display=popup&cancel_url=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%26error_reason%3Duser_denied%26error%3Daccess_denied%26error_description%3DThe%2Buser%2Bdenied%2Byour%2Brequest.%23cb%3Df16c026dc%26origin%3Dhttp%253A%252F%252Fsami.test.eu%253A81%252Ff314f6d52%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df48d09da8&fbconnect=1&next=https%3A%2F%2Fwww.facebook.com%2Fdialog%2Fpermissions.request%3F_path%3Dpermissions.request%26app_id%3D255367907914%26redirect_uri%3Dhttps%253A%252F%252Fs-static.ak.fbcdn.net%252Fconnect%252Fxd_proxy.php%253Fversion%253D3%2523cb%253Df16c026dc%2526origin%253Dhttp%25253A%25252F%25252Fsami.test.eu%25253A81%25252Ff314f6d52%2526relation%253Dopener%2526transport%253Dpostmessage%2526frame%253Df48d09da8%26sdk%3Djoey%26display%3Dpopup%26response_type%3Dtoken%252Csigned_request%26domain%3Dsami.test.eu%26fbconnect%3D1%26from_login%3D1%26client_id%3D255367907914&rcount=1

Đây là URL trong IE9 mà kết quả trong các lỗi: https://www.facebook.com/dialog/oauth?api_key=255367907914&app_id=255367907914&client_id=255367907914&display=popup&domain=sami.test.eu&locale=en_US&origin=1&redirect_uri=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df14fd3a0495986%26origin%3Dhttp%253A%252F%252Fsami.test.eu%252Ff2d9bfc6aa24134%26relation%3Dopener%26transport%3Dflash%26frame%3Df2539c36bc13734&response_type=token%2Csigned_request&sdk=joey

+0

Có phải mã thực tế bạn đang chạy không? Bạn chưa quên chỉ định id ứng dụng của mình phải không? – zerkms

+0

Có, tôi đã thay thế APPID bằng id ứng dụng thực tế của mình, sao chép từ trang ứng dụng Facebook. Nếu điều này phù hợp với người khác thì có thể có gì đó không ổn với ứng dụng của tôi. Nhưng thông báo lỗi không hữu ích chút nào. – Sami

+0

Một thông tin khác: nó hoạt động tốt trong Chrome, Firefox và Safari, tức là tôi nhận được trang đăng nhập Facebook như mong đợi. Nhưng nó không thành công trên IE9, tôi nhận được "Đã xảy ra lỗi. Vui lòng thử lại sau." – Sami

Trả lời

1

tôi nhận được lỗi này khi AppID là sai. Kiểm tra kỹ AppID của bạn.

+0

Đó là những gì tôi nghi ngờ cho đến khi tôi thử các trình duyệt khác. Kể từ khi nó hoạt động trên Chrome, Firefox và Safari, nhưng không thành công trên IE9, tôi giả sử AppID của tôi là tốt. Vấn đề có vẻ là IE9 cụ thể. – Sami

4

Tôi đã tìm ra sau khi tôi có thời gian cho một phiên gỡ lỗi.

Tôi đã sử dụng miền giả để phát triển ứng dụng của mình cục bộ. Tôi có tên miền trong tập tin máy chủ địa phương của tôi ánh xạ tới 127.0.0.1 (Tôi đã làm điều này vì lý do không liên quan đến bài đăng này).

Chỉ ra rằng khi tôi điều hướng đến trang đăng nhập Facebook, IE chuyển 127.0.0.1 trong URL tới facebook dưới dạng URL trả về. 127.0.0.1 không khớp với URL mà tôi đã định cấu hình cho ứng dụng của mình trên Facebook, vì vậy trang đăng nhập hiển thị thông báo "Đã xảy ra lỗi" (sẽ rất tuyệt khi nhận được thông báo lỗi thích hợp).

Các trình duyệt khác gửi miền giả của tôi làm URL trả về và chúng không có vấn đề gì.

Trong mọi trường hợp, tôi đã ngừng sử dụng miền giả và đảm bảo rằng tên miền khớp chính xác với cấu hình trong Facebook và hiện tại sự cố đã biến mất.

Cảm ơn tất cả các câu trả lời. Đề xuất của zerkms so sánh các URL cuối cùng dẫn đến giải pháp.

0

tôi gặp vấn đề tương tự, nhưng ở đây tên miền có thể là vấn đề. trong khi chúng tôi tạo ứng dụng facebook, trong phần 'Trang web với Đăng nhập Facebook', chúng tôi cần chỉ định 'URL trang web' chính xác. Có nghĩa là khi chúng tôi đang thử nghiệm ứng dụng ở địa phương, chúng tôi cần đề cập đến url là "http: // localhost: // {portnumber}" và nếu chúng tôi đang chạy trong máy chủ, chúng tôi cần chỉ định url thực tế như "http: // mywebsite. com ".

4

SOLVED (ít nhất là đối với tôi): Tôi không có "Trang web với đăng nhập Facebook" được định cấu hình trong cài đặt ứng dụng facebook của tôi vì tôi đã làm một ứng dụng tab trang. Không có trang web bên ngoài. Thật không may tôi đã làm gỡ lỗi mà không có iframe facebook xung quanh ứng dụng -> vì vậy đó là lý do.

Để loại bỏ lỗi tôi đã điền vào "Trang web bằng đăng nhập bằng Facebook" và điền vào đầu vào "App Domains" trong cài đặt ứng dụng.

Lạ là vấn đề này chỉ xuất hiện trong IE mặc dù!

+0

Điều này có thể sẽ giải quyết nó cho tôi. Nhìn qua rõ ràng :) –

1

Tôi nhận được thông báo này vì SSL không được định cấu hình trên địa phương của tôi để https://mywebsite.in/. đã không làm việc. Sau đó, trong ứng dụng của tôi, tôi đã bật chế độ hộp cát và xóa url bảo mật như URL Canvas an toàn.

Lưu ý: khi bạn bật chế độ hộp cát, chỉ người tạo ứng dụng mới có thể truy cập đăng nhập facebook. Những người dùng khác sẽ bên dưới tin nhắn

An error occurred. Please try again later. 
+0

Điều này cố định nó cho tôi, cảm ơn! –

+0

Niềm vui của tôi Mick –

2

đảm bảo rằng bạn không (đang chờ) làm nhà phát triển/quản trị viên trong cài đặt ứng dụng.

0

GIẢI PHÁP CẬP NHẬT: Trong cấu hình Ứng dụng FB của bạn, bạn cần thêm nền tảng Trang web với bộ URL trang web của bạn. Sau đó, bạn có thể thêm Miền ứng dụng mà tôi đặt cho tên miền cơ sở của trang web của chúng tôi (ví dụ: đối với URL như http://www.mycoolwebsite.com, chỉ cần sử dụng mycoolwebsite.com).

New FB Settings Screenshot

QUAN TRỌNG: Để cho tiện làm việc bạn sẽ cần phải sử dụng một tên miền phụ của URL của ứng dụng để phát triển tại địa phương. Bạn có thể thực hiện điều này dễ dàng bằng cách sửa đổi tệp máy chủ lưu trữ trên máy tính phát triển của mình để sử dụng tên miền phụ không tồn tại của trang web của bạn chẳng hạn như local.mycoolwebsite.com. Chỉ cần google 'chỉnh sửa tệp lưu trữ' cho nền tảng của bạn (ví dụ: mac/windows) nếu bạn không quen với cách thực hiện điều này.

Các vấn đề liên quan