12

Ho aggiunto pulsanti di base "Mi piace/Condividi" di Facebook a una pagina Web, utilizzando il codice copiato direttamente dalla pagina degli sviluppatori di Facebook. Ci sono 2 parti del codice: un blocco javascript e un tag div con una classe di "fb-like" Heres la javascript:I pulsanti Mi piace e Condividi nella pagina Web causano avvisi javascript e errore 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> 

Ed ecco il tag div per cui voglio visualizzare i pulsanti:

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

Qui ci sono i problemi che sto incontrando:

  1. Al caricamento della pagina web, ottengo 2 avvertimenti javascript. Gli avvertimenti si riferiscono al codice sorgente connect.facebook.net, riga 233, non a qualsiasi codice che ho scritto. Sono:

    • ID app non valido: deve essere un numero o una stringa numerica che rappresenta l'ID dell'applicazione.
    • FB.getLoginStatus() chiamato prima di chiamare FB.init().
  2. anche al caricamento della pagina, ottengo un errore php (like.php.1: 948):

    Questo errore è sconcertante. Prima di tutto, non sto usando i frame. In secondo luogo, i protocolli corrispondono e non c'è nulla qui sulle porte. Ovviamente i domini non corrispondono: non sto cercando di raccogliere "Mi piace" per una pagina di Facebook; Voglio ottenere "Mi piace" per una pagina del sito Web esterna. Mi sto perdendo qualcosa?

  3. Ho eseguito l'URL tramite il debugger dell'oggetto grafico aperto di Facebook. Ha portato un numero di avvertimenti che non capisco. Sono:

    • fb: mancano i tag admins e fb: app_id.
    • og: titolo, og: tipo e og: manca l'immagine.
    • og: url, andare: titolo, andare: descrizione, e andare: proprietà immagine dovrebbero essere fornite in modo esplicito

Ok, va bene. Ma dove e come dovrei aggiungere questi? Ho esaminato la documentazione di Facebook e ho cercato lo stackoverflow, senza successo. Se questi dovessero essere aggiunti alla stringa data-href nel tag div, per favore mi dia un esempio.

+0

Bene, ho trovato una risposta parziale. Per (3), i tag menzionati sono meta tag con questo formato: '' Questo suggerisce che se inserissi il tag meta tag fb: app_id, perderei il primo avviso javascript. Per quanto posso dire, riceverei comunque il secondo avvertimento. Inoltre, ora penso che quello che ho descritto come errore php sia in realtà un errore javascript. Stranamente si presenta in Safari Web Inspector ma non in Google Developer Tools, Opera Dragonfly o Firebug. –

risposta

2

Spero che tu abbia già risolto questo problema.

Ma se questo è di aiuto per qualcuno, questa risposta aiuta sulla "FB.getLoginStatus()" chiamato prima di chiamare FB.init()" ->https://stackoverflow.com/a/16593474

+0

Grazie Marco, questo è davvero utile. –

11

mi è stato sempre gli stessi avvisi JavaScript come si parla nel tuo primo numero e aggiungendo un parametro appId all'URL nel codice di Facebook ha risolto entrambi.Quindi, solo modificare questa linea:

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

a

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

Per ottenere un facebook appId, vai a: https://developers.facebook.com/apps

+0

Grazie, questo ha aiutato! – Deviljho

+0

Sarebbe bello se lo avessero documentato nei loro documenti ... –

2

come @smohajer rilevare in precedenza è necessario aggiungere l'appId ma con il nuovo SDK è necessario fare alcune piccole modifiche altrimenti vedrete alcuni errori o avvisi:

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

dovrete aggiornare entro il 30 aprile, 2015: https://developers.facebook.com/docs/apps/upgrading

Problemi correlati