Besoin d'Aide sur OAuthException Code 2500
Je suis en train de développer un Facebook application (apps.facebook.com/some_app) à l'aide de PHP où j'ai besoin de quelques informations de l'utilisateur de la musique intérêts. J'ai trouvé que sa vertu "user_likes > les jeux".
Mes problèmes sont les suivants:
- Pour accéder, j'ai implémenté le protocole oauth dialogue comme méthode
suggéré dans l'API dans ma page index.
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri="
. urlencode($canvas_page)
."&scope=user_likes";
- Après le succès de l'autorisation, je reviens à la page d'index avec "code"
en tant que paramètres.
http://MY_CANVAS_PAGE/?code=some base64 encoded letters
- Tout d'abord, je ne sais pas si j'ai besoin de access_token juste pour lire de l'utilisateur de la musique
intérêts, mais j'ai essayé toutes les méthodes proposées. Je ne pouvais pas bouger
en avant de ce point - J'ai un code comme celui-ci (dans ma page d'index), qui redirige l'autorisation si le code des paramètres n'est pas définie.
if(empty($code) && !isset($_REQUEST['error'])) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
echo("<script> top.location.href='" . $auth_url . "'</script>");
}
- Actuellement, je suis juste essayer d'obtenir de l'utilisateur du public à l'information ici, mais
sans succès. J'ai essayé le signed_request méthode, comme l'a suggéré
mais pas de succès
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
echo ("Welcome User: " . $data["user_id"]);
- Aussi essayé le code trouvé dans
http://developers.facebook.com/blog/post/500/mais je suis d'erreur lorsque vous essayez d'obtenir les informations de débogage à l'aide de
print_r($decoded_response);
stdClass Object ( [error] => stdClass Object ( [message] => An active
access token must be used to query information about the current user.
[type] => OAuthException [code] => 2500 ) )
Pour obtenir de l'utilisateur du public info, j'ai essayé aussi l'exemple en PHP SDK
$facebook = new Facebook(array(
'appId' => MY_APP_ID, //registered facebook APP ID
'secret' => MY_SECRET, //secret key for APP
));
$fb_user = $facebook->getUser();
if($fb_user){
try {
$user_profile = $facebook->api('/me');
echo $user_profile['email'];
}
catch(FacebookApiException $e) {
$fb_user = null;
}
}
Mais sans succès. Quelqu'un peut-il m'expliquer pourquoi j'obtiens cette erreur et comment y avoir accès de l'utilisateur, de la musique d'intérêt correctement. Probablement que j'ai mal compris l'API.
Grâce
Deepak
Avez-vous trouvé une solution? J'obtiens cette erreur, même sur graph.facebook.com/me l'url. Ne devrait-il pas me rendre mon facebook informations?
OriginalL'auteur Laraveldeep | 2012-02-19
Vous devez vous connecter pour publier un commentaire.
Erreur 2500 signifie que vous n'avez pas de jeton d'accès ou une application jeton d'accès, mais essayez d'accéder à
/me/
- " moi "est un espace réservé pour l '"utilisateur actuel ou l'ID de la page' ne sera donc pas valable sans un jeton d'accès pour un utilisateur ou une page.D'accès de l'utilisateur liste de "j'aime", vous aurez également besoin de
user_likes
L'autorisation lorsque l'autorisation d'euxLes causes les plus probables j'ai vu pour les applications n'étant pas en mesure d'échanger la
code
pour un jeton d'accès sont:redirect_uri
que vous avez utilisé est à un dossier ou à la racine du serveur et manque un slash (j'.e c'esthttp://www.example.com
au lieu dehttp://www.example.com/
)redirect_uri
vous avez utilisé dans le premier appel à la auth dialogue n'était pas exactement le même que l'redirect_uri
vous avez utilisé dans l'appel à exchagne le code d'une access_tokenSi votre auth flux est interrompue pour quelque autre raison, et vous ne pouvez pas comprendre, à partir du SDK exemples ou les L'authentification de la documentation, cela pourrait prendre un certain temps pour quelqu'un à qui parler de vous parce que vous avez peut-être manqué quelques connaissances de base nécessaires pour comprendre leurs réponses
OriginalL'auteur Igy
Pour moi, j'ai essayé d'obtenir un jeton d'authentification avec php et trouvé que le 2500 erreur était due à un problème avec
file_get_contents
pas de retourner quoi que ce soit. J'ai pu accéder à l'URL dans mon navigateur, mais pas en utilisantfile_get_contents
. Je l'ai fixée par l'utilisation de CURL à la place, comme décrit ici: https://stackoverflow.com/a/6325313.Le résultat a été que j'ai utilisé le code de https://developers.facebook.com/docs/authentication/server-side/ et remplacer la ligne:
avec
Il est donc devenu:
OriginalL'auteur lezoconnor
essayer Ce code
PS:l'adresse email de l'utilisateur n'est pas un public info & vous avez besoin user_email la permission pour elle
c'est à peu près du même code dans l'Facebook blog lien que j'ai posté ci-dessus developers.facebook.com/blog/post/500. J'ai essayé déjà. Avec le code ci-dessus, si j'essaie d'echo $access_token, rien n'est imprimé. Tout simplement vide.
Pour le débogage effet, j'ai essayé d'echo $response ou print_r($response) mais n'ai rien eu. Je ne sais pas pourquoi je suis null/blanc de la réponse. Je pense que les choses ont mal tourné à partir de là. Merci
pouvez-vous obtenir un jeton d'accès de votre auto avec votre navigateur ? je veux dire par la visite de cette url graph.facebook.com oauth/access_token?client_id="APPID&redirect_uri=ENCODÉE URL DE votre APPLICATION COMME http%3A%2F%2FAPPS.FACEBOOK.COM%2FXXX%2F&client_secret=le SECRET de l'APP&code=LE CODE, VOUS POUVEZ l'OBTENIR à PARTIR de l'APP
OriginalL'auteur Pooya Estakhri
J'ai résolu mon problème grâce à https://developers.facebook.com/blog/post/534/
J'ai juste copié l'exemple et collé dans mon script. Elle s'inscrit pleinement. C'est une sorte d'hybride de l'utilisation de PHP et de Javascript.
J'ai codé mon projet sur 2 ans, et ces temps facebook a été à l'aide de
$me
variable au lieu de la$user_id
à$user_id = $facebook->getUser();
de Sorte que le$me
est que$me
. Mais vous avez raison, il n'y a pas de$me
sur la page. Désolé, je l'ai supprimé.OriginalL'auteur Kemal