12

Dodałem podstawowe przyciski Facebooka "Like/Share" do strony internetowej, używając kodu skopiowanego bezpośrednio ze strony Facebook Developers. Istnieją 2 części w kodzie: javascript blok i znacznik div z klasą „fb-like” Herezje javascript:Przyciski Like i Share na stronie internetowej powodują ostrzeżenia javascript i błąd 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> 

A oto znacznik div dla gdzie chcę przyciski pojawiają:

<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> 

Oto ja napotykają problemy:

  1. Po załadowaniu strony internetowej, mam 2 ostrzeżenia JavaScriptu. Ostrzeżenia odnoszą się do kodu źródłowego connect.facebook.net, wiersza 233, a nie do kodu, który napisałem. Są to:

    • Nieprawidłowy identyfikator aplikacji: musi to być numer lub ciąg liczbowy reprezentujący identyfikator aplikacji.
    • Funkcja FB.getLoginStatus() została wywołana przed wywołaniem FB.init().
  2. również na stronie obciążenia, pojawia się błąd php (like.php.1: 948):

    Ten błąd jest zagadkowy. Po pierwsze nie używam ramek. Po drugie, protokoły są zgodne i nie ma tu nic o portach. Oczywiście domeny nie pasują: nie próbuję zbierać "polubień" na stronę na Facebooku; Chcę uzyskać "polubienia" dla zewnętrznej strony internetowej. Czy czegoś brakuje?

  3. Uruchomiłem adres URL za pomocą debuggera otwartego obiektu Facebook. Podniosło to kilka ostrzeżeń, których nie rozumiem. Są to:

    • fb: administratorzy i fb: APP_ID tagi brakuje.
    • og: title, og: type i og: image brakuje.
    • og: url, przejdź: tytuł, przejdź: Opis i idź: Właściwości obrazu powinny być wyraźnie przewidziane

Dobra, w porządku. Ale gdzie i jak mam je dodać? Przejrzałem dokumentację na Facebooku i przeszukano stackoverflow, bez powodzenia. Jeśli mają one zostać dodane do łańcucha data-href w znaczniku div, proszę podać mi przykład.

+0

Cóż, znalazłem częściową odpowiedź. W przypadku (3) wymienione znaczniki są metatagami w tym formacie: '' Sugeruje to, że jeśli zawarłem metatag fb: app_id, straciłbym pierwsze ostrzeżenie javascript. O ile wiem, nadal otrzymam drugie ostrzeżenie. Również teraz myślę, że to, co opisałem jako błąd php, jest w rzeczywistości błędem javascript. Co dziwne, pojawia się w Safari Web Inspector, ale nie w Narzędziach programistów Google, Opera Dragonfly ani Firebug. –

Odpowiedz

2

Mam nadzieję, że już rozwiązałeś ten problem.

Ale jeśli jest to pomoc dla kogoś, to odpowiedź pomaga o „FB.getLoginStatus()”, zwany przed wywołaniem FB.init()”->https://stackoverflow.com/a/16593474

+0

Dzięki Marco, to naprawdę przydatne. –

11

byłem coraz te same ostrzeżenia javascript jak wspomniałeś w pierwszym wydaniu i dodanie parametru appId do adresu URL w kodzie Facebooka rozwiązało obie z nich.Więc po prostu zmienić tę linię:

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

do

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

dostać facebook AppID, przejdź do: https://developers.facebook.com/apps

+0

Dzięki, pomogło! – Deviljho

+0

Byłoby miło, gdyby udokumentowali to w swoich dokumentach ... –

2

jak wskazano powyżej @smohajer trzeba dodać AppID ale z nowym SDK trzeba zrobić kilka małych zmian w przeciwnym razie zobaczysz jakieś błędy lub ostrzeżenia:

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

musisz uaktualnić przed 30 kwietnia, 2015: https://developers.facebook.com/docs/apps/upgrading

Powiązane problemy