- Home
- Categorie
- Coding e Sistemistica
- Coding
- Contare click effettuati sul tasto condividi
-
Ciao,scusami non ho capito tramite questi valori ad esempio
{
"id": "indirizzo sito",
"shares": 4,
"comments": 1
}come recuperare il valore di shares....in pratica a me servono i dati in modo da poter mostrare alla fine nel mio sito i link piu' condivisi....quindi non devo recuperare solo shares ma anche altri dati affinche poi posso mostrare questa sorta di classifica
-
Ho scritto un piccolo programmino (non fare caso al mio stile un po' naif) in PHP che prende gli shares da graph di facebook:
<?php $dati = file_get_contents('http://graph.facebook.com/http://example.com'); $explode = explode(",", $dati); $shares = explode('":', $explode[1]); $shares = str_replace('}','',$shares[1]); echo $shares; ?>Che nel caso di example.com $shares vale (al momento) 56504.
Tu puoi inserire un codice simile (dopo averlo adattato alle tue necessità) all'inizio delle tue varie pagine impostando automaticamente tramite PHP l'url della pagina al posto di http://example.com. Poi puoi fare quello che vuoi con la variabile $shares: aggiornarla ogni tot, salvarla nel database, scriverla su un file, in base a quello che ci devi fare.
Ad esempio, se vuoi fare un elenco puoi salvarla sul database insieme all'url e al titolo una tabella che ha tre campi. Poi lì la personalizzi come meglio credi.
Non so se esistono modi più rapidi per prendere il numero degli shares adatti alle tue esigenze, la mia è comunque solo un'ipotesi di lavoro.
Simone.
-
Scusa,è possibile tramite questa funzione di facebook recuperare anche l immagine ???
-
Se i link sono sul tuo sito non puoi prenderla direttamente da lì?
-
si sono direttamente sul mio sito,ma come faccio a recuperare il nome dell immagine relativa a quel link?
-
Aggiungo...siccome ad ogni link tramite questo tag
[HTML]<link rel="image_src" href="indirizzosito/imaagini/prova.gif" />
[/HTML]
ho fatto in modo di dargli un immagine univoca, dovrei recuperare dalla pagina in questione il contenuto compreso nel tag qui sopra piu' precisamente ciò che è compreso in href
-
Non ho capito un altra cosa la variabile $shares si andrebbe ad aggiornare nel mio database ogni qualvolta viene condiviso quell url??
-
Usi un cms?
Ipotizzando che tu usi un CMS, verrebbe qualcosa del genere:<?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //Salva l'url della pagina $dati = file_get_contents('http://graph.facebook.com/'.$url); //Prende i dati relativi all'url in questione $explode = explode(",", $dati); $shares = explode('":', $explode[1]); $shares = str_replace('}','',$shares[1]); //Otteniamo il numero di condivisioni preg_match("<link rel=\"image_src\" href=\"(.*?)\" />", $content, $match); //Otteniamo l'url dell'immagine di default $content va sostituita con la variabile che contiene il tag $image=$match[1]; echo "L'indirizzo: $url è stato condiviso su Facebook $shares volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo //Da qui si può salvare nel database ?> ```Che andrebbe messo alla fine del codice PHP che scrive i contenuti. Devi sostituire $content con la variabile dove è il tag link rel. Ogni volta che un utente accede ad una pagina questo codice preleva la url, gli shares della pagina in questione e l'immagine di default, rispettivamente salvati nelle variabili $url, $shares e $image che poi potrai salvare in un database MYSQL per ottenere una "classifica" tramite quest'ultimo dei link più condivisi. Come frequenza di aggiornamento non è male. Schematizzando: L'utente accede ad una pagina -> Il codice preleva i dati -> I dati poi possono essere salvati sul database -> Dal database può essere creata una lista che poi può essere fatta visualizzare Ovviamente la parte del database la devi scrivere tu. Spero sia una buona soluzione e di essere stato chiaro.
-
Nulla non mi recupera l immagine...
Ho inserito questo codice per recuperare il tag link rel
[php]
$content="<link rel="image_src" href="indirizzomiosito/$foto_link"/>";
[/php]
-
Ecco un esempio:
[php]
<?php
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //Salva l'url della pagina
$dati = file_get_contents('http://graph.facebook.com/'.$url); //Prende i dati relativi all'url in questione
if (strstr($dati,'shares'))
{
$explode = explode(",", $dati);
$shares = explode('":', $explode[1]);
$shares = str_replace('}','',$shares[1]); //Otteniamo il numero di condivisioni
}
else {$shares= 0;}
$content = '<html><head><link rel="image_src" href="http://www.example.com/prova.gif" /></head><body>Testo<br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0
2008, Crawlability, Inc.</div><br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0
2008, Crawlability, Inc.</div><br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0
2008, Crawlability, Inc.</div></body></html>';
preg_match("<link rel="image_src" href="(.*?)" />", $content, $match); //Otteniamo l'url dell'immagine di default $content va sostituita con la variabile che contiene il tag
$image=$match[1];
echo "L'indirizzo: $url è stato condiviso su Facebook $shares volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo
//Da qui si può salvare nel database
?>
[/php]Che restituisce:
L'indirizzo: [noparse]http://www.example.org/script/prova.php è stato condiviso su Facebook 0 volte. Immagine: http://www.example.com/prova.gif[/noparse]
-
Ciao,ora funziona Grazie,praticamente facendo cosi' ogni qualvolta un utente visita quella pagina viene scritto un nuovo record nel database,quindi se un utente visita 10 volte la pagina viene scritto 10 volte quel record....se magari imposto un controllo sull ip potrei evitare questa cosa giusto??Ovvero la scrittura di piu' volte dello stesso record da parte dello stesso utente,giusto?
-
Si, puoi farlo, poi dipende da ogni quanto vuoi aggiornare, da quante visite hai ecc. vedi tu, insomma.
-
tecnicamente sarebbe possibile fare questa cosa..??Ovvero se quell ip ha già visitato quel link aggiorna l ultimo record relativo a quel link e a quell ip...possibile???
-
Scusa ma non ho ben capito la tua domanda. Potresti riformularla in modo più chiaro?
-
Cioè,se per esempio un ip ha già visitato quel link invece di scrivere un altro record aggiornare l ultimo record relatico a quel link e a quell ip
-
Ma per ogni visita tu dovresti fare in modo che aggiorna sul database, e non che crea un nuovo record!
-
quinndi dovrei usare UPDATE invece che insert,giusto??
[PHP]$image=$match[1];
echo "L'indirizzo: $url è stato condiviso su Facebook $shares volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo
//Da qui si può salvare nel database//Se quell ip non ha ancora visitato quell utente Invio i dati al database
$query23 = "INSERT into condivisi (url,shares,image) VALUES ('$url','$shares','$image')";
$result = @mysql_query($query23) or die (mysql_error());
[/PHP]Non va bene cosi'
-
Quale è il tuo problema?
-
Scusami per aggiornare quel determinato link devo recuperare l url che si sta visitando e c'è l ho tramite la variabile $url,poi devo fare una query controllare che quel link esista già...se esiste riscriverlo giusto?A questo punto il controllo sull ip è superfluo giusto?
-
Oddio forse mi sto perdendo in un bicchier d acqua,forse è piu' facile a farsi che a dirsi....Mi applico un attimo e vedo..