Como posso recuperar todos os Tweets e atributos de um determinado usuário usando o Python?

Eu estou tentando recuperar dados do Twitter, usando o Tweepy para um nome de usuário digitado na linha de comando. Eu estou querendo extrair um grande número de dados sobre o status e o usuário, por isso surgiu o seguinte:

Note que estou importando todos os módulos necessários ok e tenho chaves oauth + (apenas não as incluo aqui) e o nome do arquivo está correto, apenas foi alterado:

# define user to get tweets for. accepts input from user
user = tweepy.api.get_user(input("Please enter the twitter username: "))

# Display basic details for twitter user name
print (" ")
print ("Basic information for", user.name)
print ("Screen Name:", user.screen_name)
print ("Name: ", user.name)
print ("Twitter Unique ID: ", user.id)
print ("Account created at: ", user.created_at)

timeline = api.user_timeline(screen_name=user, include_rts=True, count=100)
    for tweet in timeline:
        print ("ID:", tweet.id)
        print ("User ID:", tweet.user.id)
        print ("Text:", tweet.text)
        print ("Created:", tweet.created_at)
        print ("Geo:", tweet.geo)
        print ("Contributors:", tweet.contributors)
        print ("Coordinates:", tweet.coordinates) 
        print ("Favorited:", tweet.favorited)
        print ("In reply to screen name:", tweet.in_reply_to_screen_name)
        print ("In reply to status ID:", tweet.in_reply_to_status_id)
        print ("In reply to status ID str:", tweet.in_reply_to_status_id_str)
        print ("In reply to user ID:", tweet.in_reply_to_user_id)
        print ("In reply to user ID str:", tweet.in_reply_to_user_id_str)
        print ("Place:", tweet.place)
        print ("Retweeted:", tweet.retweeted)
        print ("Retweet count:", tweet.retweet_count)
        print ("Source:", tweet.source)
        print ("Truncated:", tweet.truncated)

Eu gostaria de eventualmente iterar através de todos os tweets de um usuário (até o limite de 3200). Primeiras coisas primeiro embora. Até agora, embora eu tenha dois problemas, recebo a seguinte mensagem de erro sobre os retweets:

Please enter the twitter username: barackobamaTraceback (most recent call last):
  File " usertimeline.py", line 64, in <module>
    timeline = api.user_timeline(screen_name=user, count=100, page=1)
  File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
    raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 401
Traceback (most recent call last):
  File "usertimeline.py", line 42, in <module>
    user = tweepy.api.get_user(input("Please enter the twitter username: "))
  File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
    raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 404

Passar o nome de usuário como uma variável também parece ser um problema:

Traceback (most recent call last):
  File " usertimleline.py", line 64, in <module>
    timeline = api.user_timeline(screen_name=user, count=100, page=1)
  File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
    raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 401

Eu isolei ambos os erros, ou seja, eles não estão trabalhando juntos.

Perdoe minha ignorância, não estou muito entusiasmado com as APIs do Twitter, mas estou aprendendo muito rapidamente. A documentação do Tweepy realmente é péssima e eu fiz muita leitura na net, simplesmente não consigo consertar isso. Se eu conseguir resolver isso, vou postar alguma documentação.

Eu sei como transferir os dados para um banco de dados MySQL, uma vez extraído (ele faz isso, ao invés de imprimir para a tela) e manipulá-lo para que eu possa fazer coisas com ele, é apenas tirá-lo que estou tendo problemas com . Alguém tem alguma idéia ou há outro método que eu deveria estar considerando?

Qualquer ajuda realmente apreciada. Felicidades

EDITAR:

Na sequência da sugestão de @Eric Olson esta manhã; Eu fiz o seguinte.

1) Criamos um conjunto totalmente novo de credenciais Oauth para testar. 2) Copiei o código para um novo script da seguinte forma:

Oauth

consumer_key = "(removed)"
consumer_secret = "(removed)"
access_key="88394805-(removed)"
access_secret="(removed)"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api=tweepy.API(auth)



# confirm account being used for OAuth
print ("API NAME IS: ", api.me().name)
api.update_status("Using Tweepy from the command line")

A primeira vez que eu executo o script, ele funciona bem e atualiza meu status e retorna o nome da API da seguinte forma:

>>> 
API NAME IS:  Chris Howden

Então, a partir desse ponto, eu entendo isso:

Traceback (most recent call last):
  File "C:/Users/Chris/Dropbox/Uni_2012-3/6CC995 - Independent Studies/Scripts/get Api name and update status.py", line 19, in <module>
    api.update_status("Using Tweepy frm the command line")
  File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
    raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 403

A única razão pela qual eu vejo isso fazendo algo assim é que está rejeitando o token de acesso gerado. Eu não deveria precisar renovar o token de acesso, deveria?

questionAnswers(2)

yourAnswerToTheQuestion