5

Bên dưới liên kết sự kiện đăng nhập với div. Nếu tôi nhấp vào nó, tôi nhận được thông báo đăng nhập js sdk popup. Tuy nhiên, sau khi gửi cửa sổ bật lên có thông tin đăng nhập của tôi, cửa sổ bật lên chuyển sang màu trắng và không đóng. Nếu tôi làm mới trang, tôi đã đăng nhập nhưng nó không tự động làm mới như bạn mong đợi. Bất cứ ai có bất kỳ ý tưởng?Facebook JS SDK - Cửa sổ bật lên đăng nhập không đóng


Chỉnh sửa: Cùng mã (với id ứng dụng và thông tin đăng nhập tên miền) hoạt động trên một máy chủ khác. Điều này khiến tôi tin rằng vấn đề của tôi có thể không liên quan đến mã dưới đây. Có bất kỳ cấu hình ứng dụng hoặc máy chủ nào có thể khiến cửa sổ bật lên đăng nhập không đóng/cập nhật được không?


<!DOCTYPE html> 
<html class="no-js ie ie10plus" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object#"> 
     <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.0.6-development-only.js"></script> 
    </head> 
    <body> 
     <div id="fb-root"></div> 
     <div id="fbLogin">Test login link</div> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" ></script> 
     <script>    
       var fbmm = {}; 

       window.fbAsyncInit = function() { 
       FB.init({ 
        appId  : '339910146083688', // App ID 
        cookie: true, 
        xfbml: true, 
        status: true, 
        oauth: true 
       }); 

       $(document).ready(function(){ 
        $("#fbLogin").click(function(){ 
         console.log('test'); 
         FB.login(function(response) { 
          if (response.authResponse) { 
          console.log('Welcome! Fetching your information.... '); 
          FB.api('/me', function(response) { 
           console.log('Good to see you, ' + response.name + '.'); 
          }); 
          } else { 
          console.log('User cancelled login or did not fully authorize.'); 
          } 
         }); 
        }); 
       }); 

       }; 

      (function(d){ 
      var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
      if (d.getElementById(id)) {return;} 
      js = d.createElement('script'); js.id = id; js.async = true; 
      js.src = "//connect.facebook.net/en_US/all.js"; 
      ref.parentNode.insertBefore(js, ref); 
      }(document)); 
     </script> 
    </body> 
</html> 
+0

Mã của bạn là tốt, làm việc như bạn mong đợi. – Philip

+0

Cảm ơn Philip. Cửa sổ hộp thoại của tôi là không đóng cửa trên tên miền cổng 8000 mặc dù, khi tôi không được thẩm định và đăng nhập. Tôi không chắc chắn, nhưng bạn có thể cần phải đăng xuất khỏi facebook và nhấp vào nó để xem lỗi. – Matrym

+0

Tôi đã đăng xuất và cửa sổ đóng sau khi đăng nhập. tôi chạy nó ở cổng 80 với app_id của tôi. Trong cài đặt url của ứng dụng, bạn có thêm url bằng cổng không? – Philip

Trả lời

5

Có một số vấn đề được biết đến khi thử nghiệm trên các cổng khác hơn là 80 hoặc 443. Hãy thử thiết lập máy tính thử nghiệm của bạn trên một trong số này (“bình thường”) HTTP (S) cảng, và xem nếu vấn đề vẫn còn tồn tại.

+0

Cảm ơn CBroe, tôi sẽ chụp. – Matrym

+0

Đó thực sự là vấn đề. Cảm ơn một bó :) – Matrym

0

tôi đoán là các vấn đề xảy ra kể từ khi bạn không cung cấp một url kênh, như đã đề cập trong documentation (under the Channel Url section):

File kênh giải quyết một số vấn đề với truyền thông miền chéo trong trình duyệt nhất định.
...
Tham số channelUrl là tùy chọn, nhưng được đề xuất.

Mặc dù sự cố của bạn không được liệt kê trong ba vấn đề mà tệp kênh giải quyết, tôi đã gặp phải sự cố tương tự như bạn một lần và giải quyết vấn đề này bằng cách thêm kênh, mặc dù cách đây không lâu. % Nó giống nhau.
Nó được giải thích ở đó như thế nào để tạo ra các tập tin kênh, và bạn cần phải thay đổi javascript của bạn chỉ là một chút:

FB.init({ 
    appId: '339910146083688', // App ID 
    cookie: true, 
    xfbml: true, 
    status: true, 
    oauth: true, 
    channelUrl: YOUR_CHANNEL_URL 
}); 
+0

Cảm ơn Nitzan, đó cũng là một trong những dự đoán của tôi. Tôi đã thử đặt một tệp kênh vào và nó không hoạt động. – Matrym

+0

Chỉ cần đảm bảo rằng kênh được phân phát từ cùng một tên miền, bao gồm cả cổng, cũng có nghĩa là có 2 báo cáo lỗi có thể có liên quan. [Nút đăng nhập Fb không kích hoạt lại, và tiếp tục treo sau khi đăng nhập thành công] (http://developers.facebook.com/bugs/421137377931628) cũng sử dụng một cổng khác nhau vì vậy có thể những gì @CBroe đã viết là trường hợp, thứ 2: [Fb .login trong trình khám phá 7 hiển thị cửa sổ bật lên trống và không đóng chính nó] (http://developers.facebook.com/bugs/255683901207692) là dành cho IE7 vì vậy tôi không chắc chắn. –

0

Bạn thay vì có thể thử để tùy chỉnh các ứng dụng đăng nhập với các tùy chọn tùy biến hộp thoại auth trong cài đặt ứng dụng. Ở đó bạn có thể cấu hình các điều khoản bạn muốn và facebook sẽ tự động chuyển hướng đến trang ứng dụng auth nếu người dùng không đăng nhập/ủy quyền ứng dụng của bạn. Trước tiên, bạn phải bật tính năng này từ cài đặt ứng dụng> Hộp thoại Auth. Xem chú thích Click here trong hình dưới đây. Hi vọng điêu nay co ich. enter image description here

0

Tôi gặp vấn đề tương tự khi địa chỉ trang web phát triển là http://localhost Tôi đã xác định máy chủ lưu trữ trong tệp máy chủ lưu trữ và nó hoạt động tốt.

0

tôi nhận được điện thoại tương tự như FB.login() để đóng hộp thoại bằng cách thay đổi

onclick="loginviafb()"; 

để

onclick="loginviafb(); return false;" 
Các vấn đề liên quan