2017-03-12 19 views
5

Cập nhật 1Facebook sigin trên mạng xã javascript sdk sẽ không tải trong Chrome hoặc FF

tôi bắt đầu với angular quickstart và chỉ thêm facebook của javascript, tuy nhiên, nó sẽ không tải:

<script type="text/javascript" src="//connect.facebook.net/en_US/sdk.js"></script> 

tôi đang dùng Facebook JavaScript API để tạo đăng nhập trong một ứng dụng angular 2, nhưng chạy vào như sau:

TypeError: FB.login is not a function

index.html (Elided cho ngắn gọn)

<script type="text/javascript" src="//connect.facebook.net/en_US/sdk.js"></script> 

<script> 
    System.import('app').catch(function (err) {console.error(err);}); 
</script> 

tôi nhận thấy kịch bản dường như không tải một cách chính xác, đây là từ Chrome devtools:

enter image description here

góc 2 Thành phần

declare const FB: any; 

@Component({ 
    // usual suspects here 
}) 
export class LoginComponent implements OnInit { 
constructor() { 
    FB.init({ 
    appId: 'my-app-id', 
    cookie: false, 
    xfbml: true, 
    version: 'v2.5' 
    });  
} 

ngOnInit(): void {  
    FB.getLoginStatus(response => { 
     .... 
    }); 
} 

onSignin(socialMedia: string): void { 
    FB.login(); // The errant line 
} 
} 

Tôi có phải làm điều gì đó như sau không? as outlined here

(function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.com/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
+0

bạn có thể xác nhận xem bạn có thể truy cập tệp từ trình duyệt của mình không? – Pengyy

+0

@Pengyy, Tập lệnh sẽ không tải trong chrome hoặc firefox. Nghĩ rằng tôi sẽ không bao giờ có dịp để nói điều này, nhưng, "Nó hoạt động trong Microsoft Edge". Tôi sẽ cập nhật câu hỏi của mình. – kmansoor

Trả lời

4

Trả lời câu hỏi này vì lợi ích của người khác ....

Đó là một trong số những thứ khác đã chặn 'đăng nhập xã hội'.

0

tôi nghĩ rằng thư viện script chèn của fb trong html chính của bạn file.Also chắc chắn rằng kịch bản được cung cấp bởi các nhà phát triển fb được chèn vào trong mã của bạn mà giải quyết problem.follow vào liên kết https://developers.facebook.com/docs/javascript/quickstart

+0

cả hai đề xuất của bạn đã được thử. – kmansoor

+0

Vậy thì trong trường hợp của tôi, tôi phải đối mặt với cùng một vấn đề tại thời điểm đó tôi nhận xét mã FB.login đang chạy dự án và sau đó loại bỏ các bình luận và sau đó nó làm việc tốt cho tôi thử nó !!! –

0

Đừng chạy FB.init trực tiếp, Bạn nên làm:

declare var window:any; 

và sau đó trong constructor của bạn hoặc ngInit Phương pháp sử dụng FB Async Phương pháp:

window.fbAsyncInit = function() { 
      FB.init({ 
       appId: appID, 
       xfbml: true, 
       version: 'v2.5' 
      }); 
    }; 

    (function(d, s, id){ 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.com/en_US/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

fbAsyncInit tự động nhận được kích hoạt khi facebook tải sdk.

Xem thêm tại Facebook quick start

+0

Đó là ma thuật đã chặn tập lệnh tải. – kmansoor

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