Difficulté à publier des actions à la chronologie

J'ai essayé de construire la base de notre prochaine application après le didacticiel Open Graph de Facebook, mais pour une raison quelconque, je me lance des erreurs, peu importe la façon dont j'essaie de POSER une action.

Je vais aller aussi en profondeur que je peux ici, car j'espère que cela sera très utile pour tous les développeurs qui s'attaquent à la nouvelle chronologie.

J'ai défini une action de combat et un objet de héros en utilisant les paramètres par défaut lors de la configuration de chacun. Transcendgame est mon espace de noms.

$id est l'utilisateur de l'utilisateur Facebook (j'ai essayé d'utiliser / me /, l'ID direct a toujours été moins problématique dans le passé pour moi).

$herourl est une chaîne $herourl pointe vers une page Web distincte avec le contenu suivant:

  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# transcendgame: http://ogp.me/ns/fb/transcendgame#"> <meta property="fb:app_id" content="[my id]"> <meta property="og:type" content="transcendgame:hero"> <meta property="og:url" content="http://apps.facebook.com/transcendgame/"> <meta property="og:title" content="Hercules"> <meta property="og:description" content="As this game is still in development, you can ignore this feed post!"> <meta property="og:image" content="[an image url]"> 

La page de la toile d'application contient le code suivant. Il devrait POST un nouvel événement d'action à la chronologie de l'utilisateur, mais il me donne toujours "Erreur". Je l'ai également essayé avec l'exemple d'objet héroïne (samples.ogp.me …) avec le même problème.

 <script> function doTest() { FB.api('/<?=$id?>/transcendgame:battle' + '?hero=<?=$herourl?>','post', function(response) { if (!response || response.error) { alert('Error occured'); } else { alert('Post was successful! Action ID: ' + response.id); } }); } </script> <a href="#" onclick="doTest(); return false">Test fb post</a> 

J'appelle le SDK JS et je lance fb.init correctement. Je ne sais honnêtement où le problème mène même, et encore moins comment réparer.

EDIT: J'ai correctement ajouté le jeton d'accès de l'utilisateur à l'appel API:

 FB.api('/me/transcendgame:battle' + '?hero=<?=$herourl?>&access=<?=$token?>','post', 

Cependant, je reçois l'erreur suivante:

 Type: OAuthException Message: (#3502) Object at URL [url] has og:type of 'game'. The property 'hero' requires an object of og:type 'transcendgame:hero'. 

C'est étrange, car la page Web n'a certainement aucun type: type défini correctement, comme indiqué précédemment dans cette question. Est-ce que c'est un rat de Facebook dont je dois travailler?

DEUXIÈME EDITION : Correction du problème final.

L' URL og: j'ai supposé rappeler l'URL du canevas de l'application, mais il doit se référer à sa place. Par exemple, si votre objet est sur mydomain.com/object1.php, le code doit être:

 <meta property="og:url" content="http://www.mydomain.com/object1.php"> 

J'espère que cela aide les autres.

J'ai le même problème et j'ai changé le rappel pour être plus utile:

  var fb_url = '/me/YOUR_NAMESPACE?key=value'; FB.api(fb_url,'post', function(response) { console.log(response); if (!response || response.error) { var msg = 'Error occured'; if (response.error) { msg += "\n\nType: "+response.error.type+"\n\nMessage: "+response.error.message; } alert(msg); } else { alert('Post was successful! Action ID: ' + response.id); } } ); 

METTRE À JOUR

J'ai finalement obtenu un article sur le calendrier, et le changement que j'ai dû faire était d'utiliser la version BETA de JavaScript SDK. ( https://developers.facebook.com/support/beta-tier/ )

Utilisez ceci:

 <script src="//connect.beta.facebook.net/en_US/all.js#appId=xxx&amp;xfbml=1"></script> 

Au lieu de cela:

 <script src="//connect.facebook.net/en_US/all.js#appId=xxx&amp;xfbml=1"></script> 

J'ai également posé quelque difficulté à publier. Mon problème a menti les paramètres de configuration de l'action. Assurez-vous que vos actions sont définies pour l'objet exact. Voici quelques écrans de ce que j'ai configuré et fonctionnant:

Si ces paramètres sont corrects, vérifiez le code d'erreur qui revient de Facebook, publiez-le ici et je peux vous aider à continuer.

En ce qui concerne le dernier point sur og: url – c'est correct. Vous pouvez généralement considérer l'URL OG comme la «clé primaire» d'un objet dans le graphique.

Pour effacer une confusion possible, l' og:url " object1.php " pour être la même URL que l' url de votre page object1.php . L'important à noter est que, indépendamment de l' URL que vous faites référence là-bas, il doit avoir les balises META dans le html &lt;head&gt; De la page.

Par exemple, je place l' URL d'une page de toile là-dedans, de sorte que lorsque quelqu'un clique sur le lien hypertexte dans l'action sur la timeline, il ouvre cette page. Tant que les informations META du lien 'Get Code' pour l'objet se trouvent dans la tête, vous n'obtiendrez pas l'erreur.