J'ai un problème pour intégrer mon jeu sur Facebook. En lisant la documentation, j'ai lu que le meilleur et le plus à jour pour communiquer avec FB depuis Flash est via l'API Facebook sur javascript. J'appelle cela pour obtenir toutes les boîtes de dialogue de l'interface utilisateur et les informations de connexion de base. Maintenant, mes jeux flash se connecte à un php pour envoyer et recevoir highscore comme ceci:?Access_token en php et javascript avec l'API Facebook
scores.php action = NewsCore & userId = 123123123 & score = 100
scores.php action = VIEW
scores.php? action = VIEWFRIENDS & userId = 123123123
maintenant, dans scores.php, quand je mets l'action VIEWFRIENDS, je veux le php pour créer la requête facebook. Je le fais en ajoutant
// Init the Facebook SDK
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
));
// Get the current user
$user = $facebook->getUser();
$access_token = $facebook->getAccessToken();
$fbresponse = $facebook->api("/me/friends?fields=installed", array('access_token'=>$access_token.$access_token,));
if ($fbresponse)
{
$friendsData = $fbresponse['data'];
$friendsString = '';
$friendCount = 0;
for ($i = 0; $i < sizeof($friendsData); $i++)
{
$friend = $friendsData[$i];
if ($friend['installed'])
{
if ($friendCount > 0)
$friendsString = $friendsString . ",";
$friendsString = $friendsString . "'" . $friend['id'] . "'"; $friendCount++;
}
}
// Get the friends highscores
$sql = "SELECT * FROM Highscores WHERE FacebookId IN (" . $friendsString . ") ORDER BY Score DESC LIMIT " . $scoresize ;
$result = mysql_query($sql);
}
Quand vous faites cela, tout semble travailler si je suis à l'extérieur Facebook, mais quand je l'intégrer dans mon application, il jette l'erreur suivante:
<br /> <b>Fatal error</b>: Uncaught OAuthException: Invalid access token signature. thrown in <b>/home/public_html/mysite.org/games/myGameFacebook/fb-php-sdk/base_facebook.php</b>
on line 1106
I J'essaie de vérifier ce qui se passe et je dois encore savoir ce qu'il faut faire à ce sujet. Je comprends que le jeton d'accès est généré sur Javascript lors de la connexion par ce code.
getLoginStatus:function() {
log("getLoginStatus");
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
log("Logged in.");
F.token = response.authResponse.accessToken;
F.getCurrentUserInfo();
} else if (response.status === 'not_authorized') {
log("User did not authorize app");
} else {
log("Not logged in.");
FB.login(function(response) {
if(response.session) {
log("Logging successful.");
F.token = response.session.access_token;
F.getCurrentUserInfo();
} else {
log("Logging failed.");
}
});
}
});
},
Comment puis-je résoudre ce problème? J'ai essayé de comprendre comment le faire, mais j'ai lu son soit impossible, ou un lien vers une variable de session inconnue qui n'a jamais fonctionné.