Aujourd'hui, la connexion à Facebook sur mon site Web a été interrompue. J'ai lancé le débogueur et trouvé que l'analyse du jeton d'accès échouait. Cela semble être dû au fait que Facebook a modifié le format de la réponse oauth. Auparavant, les paramètres CGI:Connexion Facebook interrompue, la réponse à la sérialisation d'Oauth est passée des paramètres CGI à JSON
access_token=EAAFO...cBUZD&token_type=bearer&expires_in=5183996
Mais tout d'un coup, il semble être PROCHAINS JSON:
{"access_token":"EAAFO...cBUZD","token_type":"bearer","expires_in":5183996}
Le correctif dans mon code semble assez simple. J'ai juste besoin de changer l'analyseur d'un analyseur CGI en un analyseur JSON et obtenir la même variable qui m'intéresse: access_token
.
Ma question concerne le versionnement de cette page. Je n'aime pas quand mon site se brise.
Pourquoi Facebook a-t-il changé cela? Ce changement est-il documenté? Existe-t-il une sorte de versioning sur Oauth que je devrais utiliser pour éviter les ruptures comme celle-ci? Comment puis-je être informé des changements futurs à Oauth par Facebook?
Le Facebook API upgrade tool ne répertorie pas les modifications dont j'ai besoin dans mon application pour la dernière version de l'API. Dans tous les cas, aucun des URL que j'utilise pour OAuth semblent avoir un numéro de version embarquée dans les:
https://www.facebook.com/dialog/oauth
https://graph.facebook.com/oauth/access_token
Il a été annoncé en https: //developers.facebook.com/docs/apps/changelog sous le titre "[Oauth Access Token] Format" il y a 2 ans. L'outil de mise à niveau affiche les éléments que Facebook doit savoir modifier. Il n'y a aucun moyen que Facebook puisse savoir si vous gérez seulement l'ancien format ou le nouveau et le vieux. – WizKid
_ "En aucun cas, aucune des URL que j'utilise pour Oauth ne semble contenir de numéro de version" _ "- parce que vous n'en avez pas spécifié, de sorte qu'il retourne à la version API actuelle la plus basse application peut utiliser. https: //developers.facebook.com/docs/facebook-login/manual-build-a-login-flow affiche la version de l'API transmise explicitement pour ces deux points de terminaison. – CBroe