2011-10-05 16 views

risposta

0

FB utilizza l'URL assegnato all'oggetto per analizzarlo per informazioni. L'unico modo per aggirare questo sarebbe avere gli oggetti mostrati tramite un iframe o un approccio simile. Se l'oggetto è stato referenziato direttamente, è necessario un modo per reindirizzare nuovamente alla pagina wrapper appropriata per la vista dell'oggetto combinata. Finché tutto è nello stesso dominio, potresti elaborare un metodo per la comunicazione tra i frame dei bambini tramite il genitore.

12

L'Open Graph utilizza l'URL come identificativo dell'oggetto, quindi non è possibile avere più oggetti su una pagina, la pagina è l'oggetto.

Invece, avrete bisogno di un URL per ogni oggetto e quell'URL dell'URL dovrebbe contenere il markup OG corretto.

È possibile inserire più pulsanti simili in una pagina e farli puntare su ciascun oggetto specificando il parametro "href" per ciascun pulsante simile.

Tuttavia, se si desidera che l'utente per finire di nuovo la pagina stessa cosa quando si clicca sul link per ognuno di questi oggetti, si può fare questo, ma è un po 'furbata ...

Sul pagine oggetto, sul tuo server, guarda la richiesta in entrata useragent. Se useragent contiene la stringa 'facebookexternalhit', quindi esegui il rendering dell'HTML e del markup OG - questo è il modo in cui il raschietto di Facebook vede la tua pagina. Se useragent non contiene questa stringa, esegui un reindirizzamento 302 alla pagina che desideri venga visualizzata dall'utente.

Risultato? Molti oggetti, ma solo una pagina visibile all'utente. Vincere.

e questo è come si dovrebbe fare:

<?php 

if ($_SERVER["HTTP_USER_AGENT"] != "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") { 
    redirect('http://www.somesite.com', 302); 
} 
function redirect($url, $type=302) { 
    if ($type == 301) header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: $url"); 
    die(); 
} 

?> 

<html... 
2

https://stackoverflow.com/a/7659770/1354666 questa è una grande risposta, ma un paio di cose su di esso non si lavora bene per me, così ho cercato un'alternativa.

Invece di usare href nei tag dei pulsanti sto usando gli iframe.

  1. Creare una serie di pagine html per ciascun oggetto OG.
  2. In ognuna di queste pagine aggiungere gli script di intestazione di facebook e gli elementi di root di Facebook necessari per chiamare l'API di Facebook.
  3. Creare gli elementi di input del modulo che chiameranno le azioni per ciascuno di questi oggetti OG. Dare a ciascuno di questi elementi un ID.
  4. Includi un piccolo script che determinerà se sei e Iframe o una pagina, in modo da poter reindirizzare gli utenti alla tua home page se fanno clic sul feed di Facebook.
  5. Infine, posiziona e il tuo iframe di dimensioni con uno stile impostato su nessun frame sulla pagina e non lo imposta. Utilizzare gli id ​​degli elementi del modulo per scegliere quale azione deve essere nella vista iframe.

Sto ancora lavorando per perfezionarlo per l'uscita del mio cellulare, ma funziona come devo fare per la maggior parte dei browser.

Problemi correlati