def index(user, request): greets = Greeting.objects.filter(users=user).order_by('lang') languages = Language.objects.all() first_name = '' try: graph = GraphAPI(user.access_token) first_name = graph.get_object('me')['first_name'] except Exception: first_name = '' c = {'uid':user.uid, 'greets':greets, 'languages':languages, 'first_name':first_name} return render(user, request, "index.html", c)
def get_user_from_token(uid, access_token): """ Get the user and if it doesn't exist create it into db. Store a local instance of the user data so we don't need a round-trip to Facebook on every request """ try: user = FacebookUser.objects.get(uid=uid, aid=FACEBOOK_APP['ID']) except FacebookUser.DoesNotExist: try: graph = GraphAPI(access_token) profile = graph.get_object("me") user = FacebookUser(uid=str(profile["id"]), aid=FACEBOOK_APP['ID'], profile_url=profile["link"], access_token=access_token, username=str(profile["username"])) user.save() # We have to create some default greeting senteces for him # and an default language too def_greets = Greeting.objects.filter(default=True) for def_g in def_greets: def_g.users.add(user) try: l = Language.objects.get(id='en') except Language.DoesNotExist: l = Language(id='en', name='English') l.save() opt = DefaultLanguage(user=user, lang=l) opt.save() except GraphAPIError: return None else: # Update the access token! if access_token and user.access_token != access_token: user.access_token = access_token user.save() return user