Actually if you look on developer.twitter.com, you will find some
library that maps the twitter REST 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/applications/helloTwitter/models/db.py#81

    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 as oauth
.
.
.
@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
>>> twitter oauth.  You can find source code here:
>>>
>>>
>>> https://code.google.com/r/michelecomitini-facebookaccess/source/browse/#hg/applications/helloTwitter
>>>
>>> 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