2012-02-04 12 views
6

Estoy tratando de publicar una actividad de gráfico abierto. En realidad, está trabajando con un archivo .html estático. Pero si apunto a una url con parámetros de URL me sale un error. El código fuente en ambas páginas es 100% igual, créeme.Dynamic OpenGraph Object URL no funciona

# 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 

error:
"objeto en la URL 'http://www.domain.com/object/?og:type' del tipo 'web' no es válida debido a una propiedad necesaria 'OG: Tipo'. Del tipo 'cadena' no estaba previsto"

Si observa el error, verá que Facebook no recibió toda la url. Los params faltan, correcto. ¡Por favor ayuda!

+0

try rodeando la etiqueta * values ​​* with escaped comillas. – Lix

+0

No, esta es una url. Funciona en el navegador y en el URL de Facbebook Linter – fabian

+0

, pero es evidente que no lo está utilizando en el navegador o linter. ¿Ha considerado que el lenguaje en el que está codificando podría tener consideraciones que escapan? – Lix

Respuesta

4

La url del objeto Open Graph que está tratando de usar es esto?

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

Mi conjetura es, ya que Facebook ya está analizando : caracteres de dos puntos para el action names (es decir graph.facebook.com/me/recipebox:cook?recipe=), que podría no ser seguro para su uso como sus propios parámetros.

Además, puede haber alguna confusión: por lo que yo sé, las propiedades de Open Graph de los objetos no se pasan en URLs como esta og:title=Some%20car. En realidad, están descodificados en la página a la que apunta la URL, a través del open graph meta tags: <meta property="og:title" content="Some car" />. Por lo tanto, si intenta establecer las propiedades del objeto con la URL, no funcionará.

¡No olvide utilizar el Lint Debug Tool para probar sus URL de Objetos de Open Graph!

Probablemente lo sepas, y solo estás usando los parámetros GET de la URL para establecer las etiquetas meta. ¿Algo como esto?

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

Si este es el caso, a modo de prueba sin los dos puntos :. Hay some debate sobre si son seguros en las URL de todos modos, pero si Facebook también está analizando ellos será más seguro para dejarlos salir, así:

// 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'] ?>" /> 

no he probado esto, sólo dar algunas sugerencias intentar. ¡Buena suerte!

+0

Déjame intentar hacer esto sin el: – fabian

+0

Se modificó, pero el mismo error. – fabian

0

Facebook tiene esta buena herramienta para descubrir lo que el facebook ve: https://developers.facebook.com/tools/debug simplemente ponga la url, y mire la depuración.

No olvide que estas metaetiquetas deben colocarse en la sección.

0

Lo tengo. @thaddeusmt: Ya estaba en el camino correcto.

¿Qué es súper importante? Por supuesto que es - usted tiene que codificarURIComponent (yoururl?con VARs) =

Resuelto

Si pasa la URL de la siguiente manera:

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

Asegúrese de que para codificar el objeto-url. P.ej. con Javascript

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