2012-02-04 17 views
6

Sto tentando di pubblicare un'attività di grafico aperto. Attualmente funziona con un file .html statico. Ma se punto a un url con url params ottengo un errore. Il codice sorgente su entrambe le pagine è uguale al 100%, fidati.L'URL dell'oggetto OpenGraph dinamico non funziona

# Dynamic call 
/me/somesandbox:drive?car=http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car 

# Static call 
/me/somesandbox:drive?car=http://www.domain.com/static_car.html 

Errore:
"Oggetto all'URL 'http://www.domain.com/object/?og:type' di tipo 'sito web' non è valido perché una proprietà obbligatoria 'OG: tipo'. Di tipo 'stringa' non è stata fornita"

Se osservate l'errore, vedrete che Facebook non ha ricevuto l'intero URL. I parametri mancano, giusto. Per favore aiuto!

+0

provare a circondare il tag * valori * con virgolette con caratteri di escape. – Lix

+0

No, questo è un URL. Funziona nel browser e nell'URL di Facbebook Linter – fabian

+0

ma chiaramente non lo stai utilizzando nel browser o nel linter. Hai considerato che la lingua che stai codificando potrebbe avere delle considerazioni di evasione? – Lix

risposta

4

L'URL oggetto grafico aperto che si sta tentando di utilizzare è questo?

http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car 

La mia ipotesi è, dal momento che Facebook sta già parsing : caratteri dei due punti per il action names (cioè graph.facebook.com/me/recipebox:cook?recipe=), essi potrebbero non essere sicuri da usare come i propri parametri.

Inoltre, potrebbe esserci qualche confusione: per quanto ne so, le proprietà Open Graph degli oggetti non vengono passate in URL come questo og:title=Some%20car. Sono in realtà non codificati nella pagina a cui punta l'URL, tramite lo open graph meta tags: <meta property="og:title" content="Some car" />. Pertanto, se si tenta di impostare le proprietà dell'oggetto con l'URL, non funzionerà.

Non dimenticare di utilizzare lo Lint Debug Tool per testare gli URL dell'oggetto Open Graph!

Probabilmente lo sai, però, e stai usando i parametri GET dell'URL per impostare i tag meta. Qualcosa come questo?

<meta property="og:title" content="<? echo $_GET['og:title'] ?>" /> 

Se questo è il caso, basta provare senza i due punti :. C'è some debate circa se sono sicuri negli URL comunque, ma se Facebook è anche loro parsing sarà più sicuro per lasciarli appena fuori, in questo modo:

// http://www.domain.com/object/?ogtype=somesandbox:car&ogtitle=Some%20car 
<meta property="og:type" content="<? echo $_GET['ogtype'] ?>" /> 
<meta property="og:title" content="<? echo $_GET['ogtitle'] ?>" /> 

non ho ancora testato questo, basta dare qualche suggerimento provare. In bocca al lupo!

+0

Vorrei provare a questo senza: – fabian

+0

Modificato, ma lo stesso errore. – fabian

0

Facebook ha questo simpatico strumento per scoprire cosa vede Facebook: https://developers.facebook.com/tools/debug basta inserire l'url e guardare il debug.

Non dimenticare, questi meta tag devono essere inseriti nella sezione.

0

Capito. @thaddeusmt: Era già sulla buona strada.

Che è davvero importante - ovviamente lo è - devi codificareURIComponent (yoururl?con = vars)

Risolto

Se si passa l'URL come questo:

/me/somesandbox:drive?car= http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

Assicurarsi per codificare l'oggetto-url. Per esempio. con Javascript

encodeURIComponent(http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car) 
Problemi correlati