Yes the book is wrong, it does not specify API version in url, but see below:


http://code.google.com/r/michelecomitini-facebookaccess/source/browse/applications/helloTwitter/controllers/default.py#43

BTW helloTwitter is a modified copy of scaffolding app, you can use it
as an example.

mic

2011/1/25 JoeCodeswell <[email protected]>:
> Dear web2py users,
>
> The Book twitter post recipe has errors. I know about 2 of them. I
> could use some help with the last one.
>
> Here is the code from the book in chapter 12.
>
> def post_tweet(username,password,message):
>    import urllib, urlib2, base64
>    import gluon.contrib.simplejson as sj
>    args= urllib.urlencode([('status',message)])
>    headers={}
>    headers['Authorization'] = 'Basic '+base64.b64encode(username
> +':'+password)
>    request = urllib2.Request('http://twitter.com/statuses/
> update.json', args, headers)
>    return  sj.loads(urllib2.urlopen(req).read())
>
>
>    import urllib, urlib2, base64
> should be
>    import urllib, urllib2, base64
>
>
>    request = urllib2.Request('http://twitter.com/statuses/
> update.json', args, headers)
> should be
>    req = urllib2.Request('http://twitter.com/statuses/update.json',
> args, headers)
>
> Here is the help i need. The
>  return  sj.loads(urllib2.urlopen(req).read())
> statement causes
>  raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
>    HTTPError: HTTP Error 401: Unauthorized
>
> I am sure I am using a valid user name and password. Does anyone have
> any ideas?
>
> I suspect the first argument to the urllib2.Request method ==
>  'http://twitter.com/statuses/update.json'
> I think '/statuses/' could possibly be a misspelling. Does anyone
> know?
>
> Thanks for the help in advance.
>
> Love and peace,
>
> Joe

Reply via email to