2017-05-17 2 views
0

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: enter image description hereDjango social_auth pour facebook ne fonctionne plus

enter image description here

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.

+0

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

+0

_ "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

Répondre

0

Il semblerait que vous ayez tapé this issue. Il semble avoir été corrigé dans python-social-auth.

Vous avez étiqueté votre question django-social-auth, mais elle était obsolète au profit de python-social-auth. Le current recommendation semble être d'installer social-auth-core et l'application social-app-django.