'Fetch the sequence of twitter.Status messages for a user\'s friends
The twitter.Api instance must be authenticated if the user is private.
Args:
user:
Specifies the ID or screen name of the user for whom to return
the friends_timeline.  If unspecified, the username and password
must be set in the twitter.Api instance.  [Optional]
count:
Specifies the number of statuses to retrieve. May not be
greater than 200. [Optional]
since:
Narrows the returned results to just those statuses created
after the specified HTTP-formatted date. [Optional]
since_id:
Returns only public statuses with an ID greater than (that is,
more recent than) the specified ID. [Optional]
Returns:
A sequence of twitter.Status instances, one for each message'

def GetHomeTimeline(self, user=None, count=None, since=None, since_id=None):

    if user:
        url = (TWITTER_API_ROOT + ('statuses/home_timeline/%s.json' % user))
    elif ((not user) and (not self._username)):
        raise TwitterError('User    must    be    specified    if    API    is    not    authenticated.')
    else:
        url = (TWITTER_API_ROOT + 'statuses/friends_timeline.json')
    parameters = {}
    if (count is not None):
        try:
            if (int(count) > 200):
                raise TwitterError("'count'    may    not    be    greater    than    200")
        except ValueError:
            raise TwitterError("'count'    must    be    an    integer")
        parameters['count'] = count
    if since:
        parameters['since'] = since
    if since_id:
        parameters['since_id'] = since_id
    json = self._FetchUrl(url, parameters=parameters)
    data = simplejson.loads(json)
    self._CheckForTwitterError(data)
    return [Status.NewFromJsonDict(x) for x in data]
