Sorry to bring this up again, but am having the same problem. accessToken() 
returns None

Could you elaborate what you did to get it working? putting what code , 
where?

thanks

On Friday, August 8, 2014 at 11:24:11 AM UTC+8, lyn2py wrote:
>
> Ok, I have figured out why it didn't work for me.
>
> It's because I put the code in user/login/facebook, when I should have 
> just used user/login. Because the request.vars.code goes to user/login, it 
> is unable to read when I put the code in the former.
>
> It has created the user and it has logged me in, so all is good now. Now I 
> just need to figure out how to have Facebook login and the Web2py login 
> together...
>
>
>
> On Friday, August 8, 2014 11:10:06 AM UTC+8, lyn2py wrote:
>>
>> I looked through the code gluon.contrib.login_methods.oauth20_account and 
>> just banged out something to test in the module for the Facebook class.
>>
>> from gluon import current
>> print current.request.vars #gave <Storage {}>
>>
>>
>> Looks like it isn't getting the request.vars.code it's supposed to get...
>>
>>
>> On Friday, August 8, 2014 10:50:53 AM UTC+8, lyn2py wrote:
>>>
>>> Good one Michele!
>>>
>>> This was what I did:
>>>
>>> if not self.accessToken():
>>>             print 'no accesstoken'
>>>             return None
>>>
>>> No accessToken(), what then should I do? Or where should I consult?
>>>
>>> On Friday, August 8, 2014 5:40:09 AM UTC+8, Michele Comitini wrote:
>>>>
>>>> Could be a session problem.
>>>> Check that your session is created and works across page reloads.
>>>>
>>>> Also check the get_user() method there could be some error raised there 
>>>> (most likely by the GraphApi),  use the debugger or simply put some 
>>>> logging 
>>>> statements to see what's going on
>>>>
>>>> I had also troubles with https not properly setup on my side so check 
>>>> that too
>>>>
>>>>
>>>> 2014-08-07 19:37 GMT+02:00 lyn2py <lyn...@gmail.com>:
>>>>
>>>>> Hello, 
>>>>>
>>>>> I have setup the code for FB oauth per web2py book here:
>>>>> http://web2py.com/books/default/chapter/29/09/access-control
>>>>>
>>>>> The code here:
>>>>>
>>>>> ## Define oauth application id and secret.
>>>>>
>>>>> FB_CLIENT_ID='xxx'
>>>>> FB_CLIENT_SECRET="yyyy"
>>>>>
>>>>> ## import required modules
>>>>> try:
>>>>>     import json
>>>>> except ImportError:
>>>>>     from gluon.contrib import simplejson as json
>>>>> from facebook import GraphAPI, GraphAPIError
>>>>> from gluon.contrib.login_methods.oauth20_account import OAuthAccount
>>>>>
>>>>>
>>>>> ## extend the OAUthAccount class
>>>>> class FaceBookAccount(OAuthAccount):
>>>>>
>>>>>     """OAuth impl for FaceBook"""
>>>>>     AUTH_URL="https://graph.facebook.com/oauth/authorize";
>>>>>
>>>>>     TOKEN_URL="https://graph.facebook.com/oauth/access_token";
>>>>>
>>>>>     def __init__(self):
>>>>>
>>>>>         OAuthAccount.__init__(self, None, FB_CLIENT_ID, FB_CLIENT_SECRET,
>>>>>
>>>>>                               self.AUTH_URL, self.TOKEN_URL,
>>>>>
>>>>>                               scope='email,user_about_me,user_activities, 
>>>>> user_birthday, user_education_history, user_groups, user_hometown, 
>>>>> user_interests, user_likes, user_location, user_relationships, 
>>>>> user_relationship_details, user_religion_politics, user_subscriptions, 
>>>>> user_work_history, user_photos, user_status, user_videos, 
>>>>> publish_actions, friends_hometown, friends_location,friends_photos',
>>>>>
>>>>>                               state="auth_provider=facebook",
>>>>>                               display='popup')
>>>>>
>>>>>         self.graph = None
>>>>>
>>>>>     def get_user(self):
>>>>>
>>>>>         '''Returns the user using the Graph API.
>>>>>         '''
>>>>>         if not self.accessToken():
>>>>>
>>>>>             return None
>>>>>
>>>>>         if not self.graph:
>>>>>
>>>>>             self.graph = GraphAPI((self.accessToken()))
>>>>>
>>>>>         user = None
>>>>>         try:
>>>>>
>>>>>             user = self.graph.get_object("me")
>>>>>
>>>>>         except GraphAPIError, e:
>>>>>
>>>>>             session.token = None
>>>>>
>>>>>             self.graph = None
>>>>>
>>>>>         if user:
>>>>>             if not user.has_key('username'):
>>>>>
>>>>>                 username = user['id']
>>>>>
>>>>>             else:
>>>>>                 username = user['username']
>>>>>
>>>>>                 
>>>>>             if not user.has_key('email'):
>>>>>
>>>>>                 email = '%s.fakemail' %(user['id'])
>>>>>
>>>>>             else:
>>>>>                 email = user['email']    
>>>>>
>>>>>             return dict(first_name = user['first_name'],
>>>>>
>>>>>                         last_name = user['last_name'],
>>>>>
>>>>>                         username = username,
>>>>>                         email = '%s' %(email) )
>>>>>
>>>>> ## use the above class to build a new login form
>>>>> auth.settings.login_form=FaceBookAccount()
>>>>>
>>>>>
>>>>>
>>>>> And I have tried logging in, the page displays and asks for my 
>>>>> permissions, which is all good.
>>>>>
>>>>> But then, it doesn't appear that I have logged in, in my app. I keep 
>>>>> returning to the login page like I have not logged in.
>>>>> And I checked the database, no new auth_user entries have been created 
>>>>> there either…
>>>>>
>>>>> May I know if I had missed a step or did something incorrectly?
>>>>>
>>>>> I appreciate any help or guidance. Thank you.
>>>>>
>>>>> -- 
>>>>> Resources:
>>>>> - http://web2py.com
>>>>> - http://web2py.com/book (Documentation)
>>>>> - http://github.com/web2py/web2py (Source code)
>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "web2py-users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to web2py+un...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to