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

Reply via email to