how to: tumblr login for web2py

98 views
Skip to first unread message

Falko Delarue

unread,
Jan 3, 2015, 7:44:38 AM1/3/15
to
This is how you login to your web2py app with Tumblr

Register a Tumblr app (you will of course need a Tumblr account)

https://www.tumblr.com/oauth/register

and configure later at

https://www.tumblr.com/settings/apps

get the consumer key and secret

install the oauth2 lib (on ubuntu)

sudo apt-get install python-oauth2

or on any other platform

pip install --user python-oauth2

download the pytumblr lib from (Download ZIP in right menu)

https://github.com/tumblr/pytumblr

extract only the pytumblr folder to yourapp/modules

edit yourapp/modules/pytumblr/__init__.py and add dot "." in front of the helpers and request import like this

from .helpers import validate_params, validate_blogname
from .request import TumblrRequest

add the following code to your db.py

consumer_key = 'XXXXXXX'
consumer_secret
= 'XXXXXX'

request_token_url
= 'http://www.tumblr.com/oauth/request_token'
authorize_url
= 'http://www.tumblr.com/oauth/authorize'
access_token_url
= 'http://www.tumblr.com/oauth/access_token'

from gluon.contrib.login_methods.oauth10a_account import OAuthAccount
import pytumblr

class TumblrOAuth(OAuthAccount):
   
"""OAuth for Tumblr"""
   
def get_user(self):
       
if not self.accessToken():
           
return None

        client
= pytumblr.TumblrRestClient(
            consumer_key
,
            consumer_secret
,
           
self.accessToken().key,
           
self.accessToken().secret,
       
)

        info
= client.info()
       
if info and ('user' in info):
           
return dict(
                first_name
=info['user']['name'],
                registration_id
='tumblr:%s' % info['user']['name'],
           
)

auth
.settings.login_form = TumblrOAuth(globals(), consumer_key, consumer_secret, authorize_url, request_token_url, access_token_url)

Replace the consumer key and secret with yours! Tumblr does not provide first or last name or an id thats why only the crude info in the return. I do not really need to create proper users so this is enough for me, you can improve on that. Also this approach will let you log in only with Tumblr, you will have to figure our the rest, this is only a basic tutorial.

Did I miss anything? Did you like that? Write a comment!

Michele Comitini

unread,
Jan 4, 2015, 5:44:19 PM1/4/15
to web...@googlegroups.com
Very nice! just one detail to make it easier for the ones that do not have apt-get...

sudo apt-get install python-oauth2

can be replaced with:

pip install --user python-oauth2

making it portable to any environment where web2py works

2015-01-03 13:44 GMT+01:00 Falko Delarue <falko....@gmail.com>:
This is how you login to your web2py app with Tubmblr

Register a Tubmblr app (you will of course need a Tubmblr account)


https://www.tumblr.com/oauth/register

and configure later at

https://www.tumblr.com/settings/apps

get the consumer key and secret

install the oauth2 lib (instructions only for ubuntu)

sudo apt-get install python-oauth2

--
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.

Falko Delarue

unread,
Jan 5, 2015, 6:47:05 AM1/5/15
to web...@googlegroups.com
Thanks, I added it!
Reply all
Reply to author
Forward
0 new messages