Mal Formé Facebook Jeton D'Accès
Je suis en train d'utiliser le Facebook Graph API pour saisir les albums photos de Facebook et de les placer sur un site web, je travaille sur. Je suis à l'aide de PHP que ma langue avec le framework Codeigniter et je suis rediriger vers un Facebook URL pour obtenir un jeton d'accès de l'utilisateur. Facebook renvoie un jeton d'accès pour moi, et je l'attraper et de l'insérer dans ma base de données.
Cela étant dit, quand j'essaie de capturer les données JSON pour l'album de photos par pour une le graphique URL, il renvoie une erreur. Le graphique URL et l'erreur sont les suivantes:
https://graph.facebook.com/1298926000574/photos?access_token=[MY ACCESS TOKEN]
My access token: AQBxqdB64GHNTGY5Yp_IOuMY7NerwNtXVVrp2HwT1qXj02zqU-63KJDyB2jzqurlJ4M0vd7TAu7upA6T7ZYQzIChr2PgD1dpu-6Iebi0WVILbBSBOu-yj7sgcHSGS-Ew4Yio0I9In-1O5jOxbYLDMbI0Zmwk-F1-u-7a8iVvTJram8PvpmdRt5eg
Returned error:
{
"error": {
"message": "Malformed access token [MY ACCESS TOKEN]",
"type": "OAuthException",
"code": 190
}
}
Je suis vraiment pas sûr pourquoi Facebook conserve son retour cette erreur pour moi. Le jeton d'accès est assez long et je suis de les stocker dans ma base de données comme un "champ" texte. J'ai suivi leurs instructions et maintenant qu'ils sont en tournage m'dans le pied. Toute aide serait grandement appréciée.
- Sont indiquées entre crochets les mots mis par vous?
- Oui, c'est juste là pour montrer où se trouve le jeton d'accès est dans l'URL et l'erreur JSON
- Avez-vous essayé de contourner le stockage dans la base de données et au lieu de l'utiliser directement à partir de l'a renvoyé des données de Facebook? Mon point est de s'assurer que le stockage et l'interrogation de retour sur le jeton n'est pas à blâmer.
- Il y a certainement quelque chose de mal avec ce jeton d'accès - aucun de mes semblent avoir des traits de soulignement ou des tirets dans les... est-elle codée, d'une certaine façon?
- Ne pas poster de vrais jetons d'accès public! Assurez-vous de changer certains des personnages dans tous vos jetons d'accès et d'essayer de les invalider, par de vous déconnecter et de vous connecter à nouveau dès que vous avez terminé avec cette question!
- Êtes-vous sûr que c'est le jeton d'accès et de ne pas le
code
de l'auth flux? - Il semble que le Code est la seule chose qui m'est revenue à partir de Facebook. Est-il plus de choses qui doit être fait pour obtenir le jeton d'accès?
- Oui. voir le Authentification documentation
- Le plus triste, c'est que quand je copie l'url exacte et le coller dans le navigateur, le droit des données est retourné, mais lorsque j'exécute mon code android, il échoue.
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce même problème et j'ai trouvé ce post la recherche d'une solution. J'ai remarqué que "notre" jeton d'accès a beaucoup de symboles bizarres, tandis que d'autres sont tout simplement une chaîne de caractères Alphanumérique.
Je crois que l'erreur que vous (et moi) a fait a été de mélanger le code avec le access_token
Après l'envoi de l'facebook de l'utilisateur de votre api pour confirmer l'accès, ils sont retournées à votre site web avec
$_GET['code']
. Ce code doit être vérifiée avec Facebook, qui sera de retour le access_token sur la réussite.Plus d'infos sur l'extraction d'un access_token avec PHP
Plus d'informations sur l'utilisation de la bonne redirect_uri
parse_str
pas de travail. Je pense que c'est parce que l'API peut avoir été légèrement modifiée. Au lieu de cela,json_decode
fait le travail.Un plugin wp revenait même erreur, et c'était la solution, il peut être lié à votre problème:
Php demande à l'access_token, et facebook serveurs retourner.
L'a retourné le message contenant access_token UTILISÉS pour être comme:
Mais pour de nouvelles applications (2012), facebook serveurs retour:
Si votre code est l'analyse de ce à tort, comme dans
puis votre $access_token à tort contient la extra &expire etc.
il doit être interprété comme:
J'ai eu le même problème. Compris comment ça fonctionne et voici pour tous ceux qui s enfonce dans la boue de même.
tl;dr
Le jeton d'accès devrait être composé de votre app id et votre jeton d'accès avec un tuyau (
|
) caractère entre eux:123456789012345|AbCDefGHijKLMNOpqRSTUVwxYZ
.La création et l'utilisation d'un jeton d'accès
La création d'un jeton d'accès
Exigences:
123456789012345
ZYxwVUTSRqpONMLKjiHGfeDCbA
Si vous suivez les jeton d'accès de création de guide vous trouverez cette URL où vous pouvez en créer un:
Si nous insérer dans notre mannequin informations d'identification de la demande d'OBTENIR l'URI devrait ressembler à ceci:
La réponse sera:
Le jeton d'accès se compose de votre app id suivie par un pipe (
|
), alors la chaîne de caractères que l'on pourrait appeler le réel jeton d'accès.En utilisant le jeton d'accès
Exigences:
123456789012345|AbCDefGHijKLMNOpqRSTUVwxYZ
1234567890
Dans cet exemple, je vais suivre le officiel facebook guide sur l'envoi de notifications. Ils ont montré ce modèle:
Cela signifie que, une fois que vous remplissez vos informations d'identification d'un exemple de message de requête devrait ressembler à ceci:
Vous envoyez
code
au lieu deaccess_token
dans votre demande.La solution pour Laravel Mondain utilisateurs:
Utilisation:
Au lieu de:
D'erreur dit que c'est mal formé exception signifie erreur dans le formatage de la
request
.De sorte qu'il serait comme