Hi Michelle. Yes, As you said, I defined it in the db.py.
Now, I'm having an error importing oauth2. I installed python-oauth2 in webfaction with 'easy_install'. But it seems like it can't import. I'll check the env. On Mon, Sep 6, 2010 at 12:47 PM, Michele Comitini < [email protected]> wrote: > Hi Yannik, > > sorry for late answering... > > just go on http://developer.twitter.com and register an application. > After that you get the CLIENT_ID and CLIENT_SECRET, TOKEN_URL and > ACCESS_TOKEN_URL from twitter. > define those variables in a file called twitter_oauth_data.py in > modules dir under your application and keep the file *secret*. > After that any user that authenticates with the application will be > redirected to twitter and twitter will let > your application act on behalf of the user. You do not have to ask > any secret from the user! > For more info on how twitter authenticates see http://oauth.net > > michele > > 2010/9/5 Yannick <[email protected]>: > > Hello Thanks for the note. > > I was using the Simple Authentication on my application to send > > tweets. I just noticed that twitter no longer support it. I guess I > > have to switch to Twitter oAuth API. > > I was wondering because it looks like to send tweet, each user of my > > application should get a CLIENT_ID, CLIENT_SECRET (oauth_token and > > oauth_token_secret). I wonder where they will get it from ? Should > > each of them have to register my application in their twitter Account > > to get it ? > > > > Thanks for your help, > > Yannick P. > > > > > > On Aug 30, 4:00 am, Michele Comitini <[email protected]> > > wrote: > >> Actually if you look on developer.twitter.com, you will find some > >> library that maps thetwitterREST api to > >> python methods. But I did not relay on that as it would have added > >> more dependencies. > >> I think that is something that you can use depending the application > >> you are going to develop. > >> > >> Things are simple even without external libraries, look for instance > >> at the get_user method in db.py, how it gets user info: > http://code.google.com/r/michelecomitini-facebookaccess/source/browse... > >> > >> def get_user(self): > >> if self.accessToken() is not None: > >> client =oauth.Client(self.consumer, self.accessToken()) > >> resp, content = > >> client.request(' > http://api.twitter.com/1/account/verify_credentials.json') > >> if resp['status'] != '200': > >> # cannot get user info. should check status > >> return None > >> u = json.loads(content) > >> return dict(username=u['screen_name'], name=u['name'], > >> registration_id=u['id']) > >> > >> so you build a client, make a request to a REST api url > >> (http://api.twitter.com/1/account/verify_credentials.json) > >> > >> To post a tweet see:http://dev.twitter.com/doc/post/statuses/update > >> > >> in your controller you should write something like this: > >> > >> import oauth2 asoauth > >> . > >> . > >> . > >> @auth.requires_login() > >> def sendtweet(): > >> token = auth.settings.login_form.accessToken() # you can use this > >> also if you prefer: token=session.access_token > >> consumer =oauth.Consumer(CLIENT_ID, CLIENT_SECRET) #<- CLIENT_ID, > >> CLIENT_SECRET are defined in db.py > >> client =oauth.Client(self.consumer, token) > >> # encode the message > >> message = 'My web2py post!" > >> data=urlencode(status=message) > >> #make a post > >> resp, content = > >> client.request('http://api.twitter.com/1/statuses/update.json', > >> "POST", body=data) > >> if resp['status'] != '200': > >> #manage the error > >> return dict(message="Could not send tweet! :-( ") > >> > >> return dict(message="Succesfully sent! :-)") > >> > >> if you call method returning some data I suggest tu use the .json > >> version of it and use > >> simplejson to decode it to a python dictionary (see the get_user() > method above) > >> > >> hope that helps... > >> mic > >> > >> 2010/8/30 Albert Abril <[email protected]>: > >> > >> > Just a question: what do you use for post a tweet, read statuses... ? > >> > Thanks in advance. > >> > >> > On Sun, Aug 29, 2010 at 12:39 PM, Albert Abril < > [email protected]> > >> > wrote: > >> > >> >> :) Thank you! > >> > >> >> On Sun, Aug 29, 2010 at 1:45 AM, Michele Comitini > >> >> <[email protected]> wrote: > >> > >> >>> Hello all, > >> > >> >>> I've uploaded a scaffolding app as example of authentication with > >> >>>twitteroauth. You can find source code here: > >> > >> >>> > https://code.google.com/r/michelecomitini-facebookaccess/source/brows... > >> > >> >>> Or you can clone the repository locally: > >> >>> > https://code.google.com/r/michelecomitini-facebookaccess/source/checkout > >> > >> >>> as usual it is also on GAE for testing: > >> >>>http://grafbook.appspot.com/helloTwitter > >> > >> >>> Please enjoy and send feedback. > >> > >> >>> tnx > >> >>> michele >

