J'ai créé social_auth avec une connexion facebook pour une application Django. Cependant, récemment, il a cessé de fonctionner (même si je n'ai pas modifié le code autant que je me souvienne). Avant cela a bien fonctionné, mais maintenant, quand je tente de me connecter, je reçois l'erreur suivante à partir de l'écran de débogage Django qui résulte: Django social_auth pour facebook ne fonctionne plus
A travers une autre débogage j'ai réalisé que la variable « réponse » dans le fichier facebook.py lors de l'exécution de la fonction auth_complete n'était pas vide, mais la variable parsed_response n'analyse pas la réponse correctement et finit ainsi vide. Ainsi, dans le fichier facebook.py du backend d'authentification sociale, je l'ai changé la ligne de code suivante:
parsed_response = cgi.parse_qs(response)
access_token = parsed_response['access_token'][0]
if 'expires' in parsed_response:
expires = parsed_response['expires'][0]
aux personnes suivantes:
import ast
parsed_response = ast.literal_eval(response)
access_token = parsed_response['access_token']
if 'expires' in parsed_response:
expires = parsed_response['expires']
Et ça marche!
Cependant, cela semble être un hack pour moi. Après avoir parcouru le site Web à la recherche de personnes rencontrant un problème similaire avec le login social_auth, je n'ai trouvé aucun article pertinent. De même, il semble étrange que cela ait juste cessé de fonctionner tout à coup, car cela fonctionnait tout ce temps. Donc, je pense que même si c'est une solution de travail, ce n'est pas la solution , comme quand j'essaye de télécharger vers Heroku ou quelque chose qui télécharge et installe ses propres dépendances je ne serai pas en mesure d'implémenter un tel bidouillage sauf si je fais pipelines backend personnalisés.
Peut-être qu'il y a quelque chose d'évident qui me manque.
Veuillez ne pas poster des captures d'écran. Copiez et collez le retraçage - il est plus lisible et peut être consulté par les futurs visiteurs. – Alasdair
_ "De même, il semble étrange que cela ait juste cessé de fonctionner tout à coup car il fonctionnait tout ce temps." - non, ce qui est étrange, c'est que tant de gens ne peuvent pas être dérangés pour suivre les annonces faites par Facebook. L'API change d'avance. – CBroe