12

Tôi đã thêm các nút "Thích/Chia sẻ" trên Facebook cơ bản vào một trang web, sử dụng mã được sao chép trực tiếp từ trang Facebook Developers. Có 2 phần vào mã: một khối javascript và một thẻ div với một lớp học của "fb-like" Heres javascript:Nút Thích và Chia sẻ trong trang web gây ra cảnh báo javascript và lỗi php

<div id="fb-root"></div><script>(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.net/en_US/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

Và đây là thẻ div cho nơi tôi muốn các nút xuất hiện:

<div class="fb-like" data-href="http://www.bethcake.com" data-width="90" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div> 

Dưới đây là những vấn đề tôi đang gặp phải:

  1. Khi tải trang web, tôi nhận được 2 lời cảnh báo javascript. Các cảnh báo đề cập đến mã nguồn connect.facebook.net, dòng 233, không phải bất kỳ mã nào tôi đã viết. Chúng là:

    • Id ứng dụng không hợp lệ: Phải là số hoặc chuỗi số đại diện cho id ứng dụng.
    • FB.getLoginStatus() được gọi trước khi gọi FB.init().
  2. Cũng trong ngày tải trang, tôi nhận được một lỗi php (like.php.1: 948):

    Lỗi này khó hiểu. Trước hết, tôi không sử dụng khung. Thứ hai, các giao thức phù hợp và không có gì ở đây về các cổng. Tất nhiên các lĩnh vực không phù hợp: Tôi không cố gắng thu thập "Thích" cho một trang Facebook; Tôi muốn nhận được "Thích" cho một trang web bên ngoài. Tui bỏ lỡ điều gì vậy?

  3. Tôi đã chạy URL thông qua Trình gỡ lỗi đối tượng mở biểu đồ mở của Facebook. Nó đưa ra một số cảnh báo tôi không hiểu. Chúng là:

    • fb: quản trị viên và fb: thẻ app_id bị thiếu.
    • og: tiêu đề, og: loại và og: hình ảnh bị thiếu.
    • og: url, hãy: tiêu đề, đi: mô tả, và đi: thuộc tính hình ảnh cần được cung cấp một cách rõ ràng

Được rồi, được rồi. Nhưng ở đâu và làm thế nào tôi phải thêm những? Tôi đã xem qua tài liệu Facebook và tìm kiếm stackoverflow, mà không thành công. Nếu đây là những nghĩa vụ phải được thêm vào chuỗi dữ liệu-href trong thẻ div, xin vui lòng cho tôi một ví dụ.

+0

Vâng, tôi đã tìm thấy câu trả lời một phần. Đối với (3), các thẻ được đề cập là các thẻ meta có định dạng này: '' Điều này gợi ý rằng nếu tôi bao gồm thẻ meta fb: app_id, tôi sẽ mất cảnh báo javascript đầu tiên. Theo như tôi có thể nói, tôi vẫn nhận được cảnh báo thứ hai. Ngoài ra, bây giờ tôi nghĩ rằng những gì tôi mô tả như là một lỗi php là trong thực tế, một lỗi javascript. Điều kỳ lạ là nó xuất hiện trong Trình kiểm tra web Safari nhưng không xuất hiện trong Công cụ dành cho nhà phát triển của Google, Opera Dragonfly hoặc Firebug. –

Trả lời

2

Hy vọng bạn đã giải quyết được sự cố này.

Nhưng nếu điều này là giúp đỡ cho một ai đó, câu trả lời này giúp về "FB.getLoginStatus()" được gọi trước khi gọi FB.init()" ->https://stackoverflow.com/a/16593474

+0

Cảm ơn Marco, điều này thực sự hữu ích. –

11

tôi đã nhận được những lời cảnh báo javascript giống như bạn đề cập đến trong số đầu tiên của bạn và thêm tham số appId vào URL trong mã facebook đã giải quyết cả hai.Vì vậy, chỉ cần thay đổi dòng này:

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; 

để

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=1234567891234567"; 

Để có được một facebook AppID, hãy vào: https://developers.facebook.com/apps

+0

Cảm ơn, điều đó đã giúp! – Deviljho

+0

Sẽ thật tuyệt nếu họ ghi lại điều này trong tài liệu của họ ... –

2

như @smohajer chỉ ở trên, bạn cần phải thêm AppID nhưng với SDK mới, bạn cần phải thực hiện một số thay đổi nhỏ nếu không bạn sẽ thấy một số lỗi hoặc cảnh báo:

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=1234567891234567&version=v2.2"; 

bạn sẽ phải nâng cấp trước ngày 30 tháng tư, 2015: https://developers.facebook.com/docs/apps/upgrading

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