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

Reply via email to