Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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