2012-08-23 4 views
1

Je construis une application de toile Facebook qui utilise Open Graph. Ainsi, par exemple l'application tire dans le contenu de l'action http://www.mysite.com/ Say affiché dans la timeline comme "Duncan a terminé MyObject sur My App"Facebook Open Graph Object Lien vers l'application Facebook

En cliquant My App ouvre la page de l'application sur Facebook. Cependant, en cliquant sur le lien MyObject ouvre la page réelle où toutes mes méta données sont ajoutées en dehors de Facebook www.mysite.com

Je veux juste que les deux liens pour ouvrir l'application dans Facebook. Ai-je manqué un truc ici ou est ma seule solution pour effectuer une redirection ou quelque chose? Je comprends que j'ai besoin de Facebook pour analyser mysite.com afin de récupérer des méta-données. Cependant, définir l'og: url à l'url de mon application ne fait pas de différence.

Répondre

1

J'avais le même problème. J'ai fini par faire un fichier .jsp séparé qui écrit toutes les og: balises dans la page, et dans le corps, il ne contient que:

<script> 
    location.href = "<%=redirectUrl%>"; 
</script> 

La variable redirectUrl est une chaîne que je calcule à partir de l'URL demandée d'origine, il est comme "http://apps.facebook.com/xxxyyy?myParam=zzz". Bien sûr, ça peut être n'importe quoi, et en PHP ou n'importe quel langage que vous utilisez.

Lorsque vous publiez une action dans Open Graph, utilisez la page avec la redirection comme URL d'objet. Facebook analysera bien les balises og, et quand un navigateur lu la page, il redirigera l'utilisateur vers votre application Facebook.

0

J'ai eu le même problème, je ne savais pas s'il me manquait quelque chose de vraiment évident.

J'ai eu un fichier PHP qui a suivi le fichier d'exemple de Facebook. Mais lorsque vous cliquez sur l'objet sur l'histoire de la chronologie, j'ai remarqué le paramètre GET suivant: fb_source=timeline_og

Donc, pour résoudre le problème de redirection, je mets le suivant en haut du fichier, à l'intérieur des balises PHP:

<?php 
    if ($_GET['fb_source'] == 'timeline_og') { 
     // clicked on link in timeline, so redirect to required URL 
     header('Location: REDIRECT_URL_HERE'); 
    } 

(de toute évidence, remplacer REDIRECT_URL_HERE avec tout ce que l'URL que vous souhaitez rediriger vers.)

Espérons que quelqu'un trouvera ce utile!