J'ai enfin un moyen d'accéder aux différentes valeurs de facebook en utilisant django-allauth
. Le seul problème auquel je suis confronté est l'accès aux valeurs du modèle.Accéder aux valeurs json sur le modèle django
Voici le views.py
:
from allauth.socialaccount.models import SocialToken
import json
import requests
def fb_personality_traits(request):
access_token = SocialToken.objects.get(account__user=request.user, account__provider='facebook')
# print access_token.token
requested_data = requests.get(
'https://graph.facebook.com/me?access_token=' + access_token.token + '&fields=id,name,email,posts,about')
data_FB = json.loads(requested_data)
return render(request, 'home/facebook_personality_traits.html', {'fb': data_FB})
Voici le modèle taht J'utilise pour afficher les valeurs:
<html>
<body>
Welcome back {{ user.name }}
{{fb.name}}
<!-- <img src="" height="60" width="60"> -->
<a href="/">Home</a>
</body>
</html>
Je reçois l'erreur suivante:
S'il vous plaît laissez-moi savoir quoi améliorer.
** Erreur dans le texte **
TypeError at /facebook_personality_traits/
expected string or buffer
Request Method: GET
Request URL: http://website:port/facebook_personality_traits/
Django Version: 1.11.5
Exception Type: TypeError
Exception Value:
expected string or buffer
Exception Location: /usr/lib/python2.7/json/decoder.py in decode, line 364
Python Executable: /usr/bin/python
Python Version: 2.7.12
Python Path:
['/home/ubuntu/PersonalityWithFacebook',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']
Server time: Wed, 11 Oct 2017 11:00:14 +0000
C'est le JSON je stocke dans la variable JSON: gist of the json
* i.stack.imgur.com n'est actuellement pas en mesure de traiter cette demande. * La raison la plus importante pour laquelle des erreurs doivent être ajoutées dans le texte, pas en tant qu'images. –
@MosesKoledoye Juste un moment, j'ajoute ... –