10
votes

Impossible de publier un score élevé à la timeline du joueur sur Facebook

Je développe un jeu de PHP et que vous souhaitez poster des joueurs highscore à leur propre mur Facebook /timeline.

I've mis en place une application Facebook et le code PHP que je utilise pour POST le score est ( comme il est prévu par Facebook lui-même): p>

<?php
 require 'facebook-sdk/facebook.php';

 $app_id = MY_APP_ID;
 $app_secret = MY_APP_SECRET;
 $score = 1500;  // this is gonna be passed someway...

 $facebook = new Facebook(array(
   'appId'  => $app_id,
   'secret' => $app_secret,
 ));

 $user = MY_USER_ID;  // to be replaced with a call to $facebook->getUser()

 $app_access_token = get_app_access_token($app_id, $app_secret);
 $facebook->setAccessToken($app_access_token);
 $response = $facebook->api('/' . $user . '/scores', 'post', array(
   'score' => $score,
 ));
 print($response);

 // Helper function to get an APP ACCESS TOKEN
 function get_app_access_token($app_id, $app_secret) {
   $token_url = 'https://graph.facebook.com/oauth/access_token?'
     . 'client_id=' . $app_id
     . '&client_secret=' . $app_secret
     . '&grant_type=client_credentials';

   $token_response =file_get_contents($token_url);
   $params = null;
   parse_str($token_response, $params);
   return  $params['access_token'];
 }
?>


11 commentaires

Avez-vous vérifié dans le journal d'activité? Vous pouvez y accéder via facebook.com/user_id/allactivité


Êtes-vous sûr que vous utilisez un jeton d'accès d'applications valide? (c.-à-d. Essayez ECHO ING ITHO et assurez-vous qu'il est ce que vous attendez) Avez-vous essayé de reproduire la demande dans graphique explorateur API ?


Malheureusement, j'ai fait les deux, comme je l'ai écrit: le score est enregistré par Facebook, mais aucun message n'apparaît nulle part comme je m'attendais à la DOCS.


Avez-vous publié un score pour un utilisateur de test ou un véritable utilisateur?


S'il vous plaît, ne postez pas de solutions ni d'idées simplement googlées et non testées. Je veux dire: facebook.com/user_id/allactivity ne fonctionne pas. Facebook répond avec une "page non trouvée". Merci


user_id doit remplacer par votre identifiant


Je sais mec. C'est une page non trouvée.


J'ai une chronologie activée pour mon compte. Vous pouvez voir ceci pour mon compte facebook.com/venu.t/allactivité . Si vous avez un nom d'utilisateur, cela devrait être utilisé


La catégorie de votre application est-elle définie sur «jeux»? Seules les applications avec ce paramètre de catégorie peuvent publier des histoires de score. Vous pouvez vérifier ce paramètre sur les pages de développeur FB> applications> Votre nom d'application> Modifier les paramètres> Catégorie.


Oui c'est un jeu en effet. Le score est enregistré mais n'apparaît pas comme une histoire de score n'importe où sur Facebook


Vous avez peut-être déjà lu cela déjà, mais votre question semble semblable à celle-ci: Stackoverflow.com/questions/9817421/...


6 Réponses :


0
votes

Je lis quelque chose récemment que FB a cessé de permettre aux postes d'API à des délais. Il se présentera toujours dans les nouvelles, mais tout simplement pas sur leur mur.


1 commentaires

Pouvez-vous s'il vous plaît poster un lien? "J'ai lu quelque chose" est assez générique, n'est-ce pas?



2
votes

1 commentaires

Déjà étudié avant de poster. Mon code est dérivé de cela et ne fonctionne pas encore



1
votes

Vous pouvez créer un message sur la page de profil d'une application en émettant une demande de courrier http à app_id / flux (non profil_id / messages) avec les autorisations Publish_stream.

Plus de détails: TECHEW.IN


1 commentaires

Ok, mais cela ne résout pas la question. Ressemble plus à une solution de contournement, merci quand même



-2
votes

Je pense que j'ai trouvé le problème pour vous.

https://developers.facebook.com/docs/opengraphprotocol/#Types

Voir la déclaration:

Les pages de type article ou vidéo n'ont pas de droits de publication et ne figureront pas sur les profils de l'utilisateur car ils ne sont pas des objets du monde réel.


0 commentaires

1
votes

Si votre problème est «lorsque je posterai avec succès un score à l'API, cela ne crée pas nécessairement une histoire dans les flux de nouvelles ou sur la chronologie» Ce n'est pas un problème - c'est ainsi que l'API Scores fonctionne.

Les scores sont une option de partage légère et ne sont pas toujours montrées individuellement - je vois rarement que "l'utilisateur a obtenu des scores x" sur Facebook, mais voir "X Beat Y's Score in z 'et" x a eu un nouveau score élevé " Assez souvent - il existe également une unité de chronologie du profil d'un utilisateur montrant un résumé de l'activité de jeu et les données de scores sont présentées là-bas.

Continuez simplement à poster sur / [utilisateur] / Scores lorsque l'utilisateur obtient un nouveau score élevé et laissez Facebook s'occuper de la distribution


0 commentaires

4
votes

Vous écrivez

La lecture de la documentation, il me semble que l'histoire d'utilisateur doit être publié automatiquement quand on enregistre un score.

Les scores ne sont pas automatiquement publiés. Ils ne sont publiées que sous certaines conditions, à savoir lorsqu'un utilisateur:


3 commentaires

Mon développement est allé plus loin, je pose maintenant un score et un poste mural. Donc, je ne posterai plus toujours 1 500 et je vérifie le score réel pour être supérieur à ce qui est stocké sur Facebook avant de poster. Pendant que j'écris, je fais un test avec quelques amis, vous fera savoir


Temps de mise à jour: Ensuite aux tests, j'ai fait avec mes amis, je dois dire que cela fonctionne en partie. J'ai pu obtenir la "histoire de passage" seulement trois fois sur cinq et je n'ai jamais eu une "histoire de pointe élevée". Avez-vous de nouvelles suggestions et / ou explications? Donc, loin tu es la meilleure réponse. Accepté :)


Heureux qu'il ait aidé :) Basé sur votre description de vos tests, je pense que des histoires de scores élevées sont filtrées pour la fréquence interne à la FB afin que ces histoires n'apparaissent pas trop souvent dans l'alimentation d'un utilisateur. Par exemple, plusieurs nouveaux cadres supérieurs sur une seule journée d'un joueur jouant à votre jeu ne seraient pas publiés. Les détails de la manière dont ce filtre fonctionne semble être privé