[Tutor] Session from different app or domain
anil maran
anilmrn at yahoo.com
Mon Jan 1 20:33:49 CET 2007
One app i m developing needs integrating with the
client site and get
their users, so I need to use their login to log the
users in and once
they are in they should use my application sort of
like Microsoft
Passport...
Here is the problem the example usage is in Django
and they are talking about a request object
if 'session_key' in request.session and 'uid' in
request.session:
fb.session_key =
request.session['session_key']
Anyone can tell me how I can access this in webpy
Isnt flup something that is set from webpy, how do we
use sessions that
are set by a different Application
This question has a wide range of implications for
eg., this can be
used to apply to newly opened yahoo mail api etc., So
please share your
insights. I m sharing the example code below..
Thanks
# -----------------------
# Web application example
# -----------------------
def simple_web_app(request, api_key, secret_key):
fb = WebAppWidget(api_key, secret_key,
request.GET['auth_token'])
fb.auth_getSession()
friend_ids = fb.friends_get()
info = fb.users_getInfo(friend_ids, ['name',
'pic'])
print '<html><body>'
for friend in info:
print '<a href="%(pic)s">%(name)s</a>' %
friend
print '</body></html>'
def web_app(request):
"""Get the user's friends and their pictures. This
example uses
the Django web framework, but should be
adaptable to others."""
# Get api_key and secret_key from a file
fb_file = open('facebook_keys.txt').readlines()
api_key = fb_file[0].strip()
secret_key = fb_file[1].strip()
fb = WebAppWidget(api_key, secret_key)
# Use the data from the cookie if present
if 'session_key' in request.session and 'uid' in
request.session:
fb.session_key =
request.session['session_key']
fb.uid = request.session['uid']
else:
try:
fb.auth_token = request.GET['auth_token']
except KeyError:
# Send user to the WebAppWidget to login
return
HttpResponseRedirect(fb.get_login_url())
# getSession sets the session_key and uid
# Store these in the cookie so we don't have
to get them again
fb.auth_getSession()
request.session['session_key'] =
fb.session_key
request.session['uid'] = fb.uid
try:
friend_ids = fb.friends_get()
except WebAppWidgetError, e:
# Error 102 means the session has expired.
# Delete the cookie and send the user to
WebAppWidget to login
if e.info['code'] == u'102':
del request.session['session_key']
del request.session['uid']
return
HttpResponseRedirect(fb.get_login_url())
else:
# Other WebAppWidget errors are possible
too. Don't ignore
them.
raise
info = fb.users_getInfo(friend_ids, ['name',
'pic'])
# info is a list of dictionaries
# you would never do this in an actual Django
application,
# it's just an example of accessing the results.
links = []
for friend in info:
html = '<a href="%(pic)s">%(name)s</a>' %
friend
links.append(html)
return render_to_response('template.html',
{'links': links})
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the Tutor
mailing list