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']; } ?>
6 Réponses :
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. p>
Pouvez-vous s'il vous plaît poster un lien? "J'ai lu quelque chose" est assez générique, n'est-ce pas?
essayez de regarder cela p>
https://github.com/fbsamples/criticalmass/tree/master/ Web / criticalmass p>
espoir sera utile p>
Déjà étudié avant de poster. Mon code est dérivé de cela et ne fonctionne pas encore
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. P>
Plus de détails: TECHEW.IN P>
Ok, mais cela ne résout pas la question. Ressemble plus à une solution de contournement, merci quand même
Je pense que j'ai trouvé le problème pour vous. P>
https://developers.facebook.com/docs/opengraphprotocol/#Types p>
Voir la déclaration: p>
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. P>
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. p>
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. P>
Continuez simplement à poster sur / [utilisateur] / Scores lorsque l'utilisateur obtient un nouveau score élevé et laissez Facebook s'occuper de la distribution p>
Vous écrivez p>
La lecture de la documentation, il me semble que l'histoire d'utilisateur doit être publié automatiquement quand on enregistre un score. P> blockQuote>
Les scores ne sont pas automatiquement publiés. Ils ne sont publiées que sous certaines conditions, à savoir lorsqu'un utilisateur: p>
- obtient un score ( "High story score"). Li>
- passer le score d'un autre ami ( "Passing histoire"). Li> ul>
Dans votre code, vous afficher le score à chaque fois 1500. Après la première fois que vous publiez, lorsque vous publiez à nouveau à plusieurs reprises pour tester, votre demande de poste sera couronnée de succès, mais le score ne sera pas publié à nouveau car il n'est pas un nouveau sommet. P>
Sources:
Facebook Développeurs. Jeux Tutorial
Facebook Développeurs Blog développeur: Mise à jour: Élargir la distribution pour les scores et réalisations p>
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é
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 CODE> ING ITHO CODE> 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/...