2

Je viens de commencer à implémenter FB Achievements pour mon jeu. J'utilise le SDK PHP pour mon application.Enregistrer Succès ok, Créer Réalisations Retours false

Je me suis inscrit avec succès une réalisation en utilisant le code suivant de ma classe qui sous-classe de la classe PHP SDK:

$URL = 'apps.facebook.com/<app_name>/ach1.html'; 
$AppID = $this->getAppId(); 

$Params = array('achievement' => $URL); 

$res = $this->api($AppID.'/achievements', 'POST', $Params); 

Je peux confirmer cela a été créé via l'API Graph Explorer:

{ 
    "data": [ 
    { 
     "url": "http://apps.facebook.com/<app_name>/ach1.html", 
     "type": "game.achievement", 
     "title": "Tutorial", 
     "image": [ 
     { 
      "url": "<app_img_url>/1-ach.jpg" 
     } 
     ], 
     "description": "Tutorial Completed", 
     "site_name": "<app_name>", 
     "data": { 
     "points": 1 
     }, 
     "updated_time": "2012-07-13T16:05:44+0000", 
     "id": "<id>", 
     "application": { 
     "id": "<app_id>", 
     "name": "<app_name>", 
     "url": "https://www.facebook.com/apps/application.php?id=<app_id>" 
     }, 
     "context": { 
     "display_order": 0 
     } 
    } 
    ] 
} 

Cependant, lorsque je tente de créer un exploit pour moi il retourne faux:

$URL = 'apps.facebook.com/<app_name>/ach1.html'; 
$UserID = 100000466230867; 

$AccessToken = $this->getApplicationAccessToken(); 

$Params = array('access_token' => $AccessToken, 
       'method' => 'post', 
       'achievement' => $URL); 

$res = $this->api($UserID.'/achievements', 'POST', $Params); 

Le résultat est "boolean false". Aucun code d'erreur n'est renvoyé. Est-ce que je fais quelque chose de manifestement ou de fondamentalement faux ici? J'ai essayé de fournir un 'display_order' de valeur 1 et 0 aussi.

Je peux confirmer que j'ai accordé l'autorisation publish_actions également.

permissions:Array ([data] => Array ([0] => Array ([installed] => 1 [email] => 1 [publish_actions] => 1 [bookmarked] => 1))) 

Mon application est correctement configurée en tant que jeu.

Toute aide grandement appréciée !!

Vive

Répondre

0
  1. Si l'application est en mode bac à sable, sortez.
  2. Assurez-vous que l'utilisateur a autorisé & n'a pas supprimé l'application

« faux » signifie généralement « personne ou d'une page dont l'accès jeton que vous utilisez ne peut pas voir les données que vous demandez », Cela se produit le plus souvent pour les utilisateurs bloqués, les applications en mode sandbox, le contenu supprimé, etc. Dans ce cas, je suppose que l'application ne peut pas voir/interagir avec l'utilisateur (si un utilisateur test créé via l'interface des paramètres de l'application ou API cela est particulièrement probable car les utilisateurs de tests ont d'étranges bizarreries en matière de vie privée)

Questions connexes