you can try installing under site-packages in the root dir of web2py. I do that for running the app on GAE and it works :-)
mic 2010/9/6 Albert Abril <albert.ab...@gmail.com>: > 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 > <michele.comit...@gmail.com> 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 <ytchatch...@gmail.com>: >> > 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 <michele.comit...@gmail.com> >> > 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 <albert.ab...@gmail.com>: >> >> >> >> > 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 >> >> > <albert.ab...@gmail.com> >> >> > wrote: >> >> >> >> >> :) Thank you! >> >> >> >> >> On Sun, Aug 29, 2010 at 1:45 AM, Michele Comitini >> >> >> <michele.comit...@gmail.com> 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 > >