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:
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().
również na stronie obciążenia, pojawia się błąd php (like.php.1: 948):
- Zablokowane ramkę z pochodzenia "http://www.facebook.com" dostępu ramkę z pochodzenia "http://www.bethcake.com" . Protokoły, domeny i porty muszą być zgodne.
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?
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.
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. –