def twitterreq(url, method, parameters):
    """
    Send twitter URL request
    
    Utility function used by the others in this package
    
    Note: calls a function twitter_credentials() contained in
          a file named twitter_credentials.py which must be provided 
          individually by each user, which returns the values for: 
              api_key
              api_secret
              access_token_key
              access_token_secret
          as a tuple in that order
          
     This is a modification of a shell provided by
     Bill Howe
     University of Washington
     for the Coursera course Introduction to Data Science
     Spring/Summer 2014
     (which I HIGHLY recommend)
    """
    import oauth2 as oauth
    import urllib2 as urllib

    # this is a private function containing my Twitter credentials
    from twitter_credentials import twitter_credentials
    api_key,api_secret,access_token_key,access_token_secret = twitter_credentials()

    _debug = 0

    oauth_token    = oauth.Token(key=access_token_key, secret=access_token_secret)
    oauth_consumer = oauth.Consumer(key=api_key, secret=api_secret)

    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()

    http_method = "GET"


    http_handler  = urllib.HTTPHandler(debuglevel=_debug)
    https_handler = urllib.HTTPSHandler(debuglevel=_debug)

    '''
    Construct, sign, and open a twitter request
    using the hard-coded credentials above.
    '''
    req = oauth.Request.from_consumer_and_token(oauth_consumer,
                                                 token=oauth_token,
                                                 http_method=http_method,
                                                 http_url=url, 
                                                 parameters=parameters)

    req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)

    headers = req.to_header()

    if http_method == "POST":
      encoded_post_data = req.to_postdata()
    else:
      encoded_post_data = None
      url = req.to_url()

    opener = urllib.OpenerDirector()
    opener.add_handler(http_handler)
    opener.add_handler(https_handler)

    response = opener.open(url, encoded_post_data)

    return response
def twitterreq(url, method, parameters):
    """
    Send twitter URL request
    
    Utility function used by the others in this package
    
    Note: calls a function twitter_credentials() contained in
          a file named twitter_credentials.py which must be provided as follows:

            api_key = " your credentials "  
            api_secret = " your credentials "  
            access_token_key = " your credentials "  
            access_token_secret = " your credentials "  
            return (api_key,api_secret,access_token_key,access_token_secret)
          
     This function is based on a shell provided by
     Bill Howe
     University of Washington
     for the Coursera course Introduction to Data Science
     Spring/Summer 2014
     (which I HIGHLY recommend)
    """
    import oauth2 as oauth
    import urllib2 as urllib
    import sys, time

    # this is a private function containing my Twitter credentials
    from twitter_credentials import twitter_credentials
    api_key,api_secret,access_token_key,access_token_secret = twitter_credentials()

    _debug = 0

    oauth_token    = oauth.Token(key=access_token_key, secret=access_token_secret)
    oauth_consumer = oauth.Consumer(key=api_key, secret=api_secret)

    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()

    http_method = "GET"


    http_handler  = urllib.HTTPHandler(debuglevel=_debug)
    https_handler = urllib.HTTPSHandler(debuglevel=_debug)

    '''
    Construct, sign, and open a twitter request
    using the hard-coded credentials above.
    '''
    req = oauth.Request.from_consumer_and_token(oauth_consumer,
                                                 token=oauth_token,
                                                 http_method=http_method,
                                                 http_url=url, 
                                                 parameters=parameters)

    req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)

    headers = req.to_header()

    if http_method == "POST":
      encoded_post_data = req.to_postdata()
    else:
      encoded_post_data = None
      url = req.to_url()

    opener = urllib.OpenerDirector()
    opener.add_handler(http_handler)
    opener.add_handler(https_handler)

    try:
        response = opener.open(url, encoded_post_data)
    except:
        print "\n ERROR IN TWITTERREQ"
        print sys.exc_info()
        time.sleep(60) # wait 60 seconds
        # try one more time
        response = opener.open(url, encoded_post_data)

    return response
def twitterreq(url, method, parameters):
    """
    Send twitter URL request
    
    Utility function used by the others in this package
    
    Note: calls a function twitter_credentials() contained in
          a file named twitter_credentials.py which must be provided as follows:

            api_key = " your credentials "  
            api_secret = " your credentials "  
            access_token_key = " your credentials "  
            access_token_secret = " your credentials "  
            return (api_key,api_secret,access_token_key,access_token_secret)
          
     This function is based on a shell provided by
     Bill Howe
     University of Washington
     for the Coursera course Introduction to Data Science
     Spring/Summer 2014
     (which I HIGHLY recommend)
    """
    import oauth2 as oauth
    import urllib2 as urllib

    # this is a private function containing my Twitter credentials
    from twitter_credentials import twitter_credentials
    api_key, api_secret, access_token_key, access_token_secret = twitter_credentials(
    )

    _debug = 0

    oauth_token = oauth.Token(key=access_token_key, secret=access_token_secret)
    oauth_consumer = oauth.Consumer(key=api_key, secret=api_secret)

    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()

    http_method = "GET"

    http_handler = urllib.HTTPHandler(debuglevel=_debug)
    https_handler = urllib.HTTPSHandler(debuglevel=_debug)
    '''
    Construct, sign, and open a twitter request
    using the hard-coded credentials above.
    '''
    req = oauth.Request.from_consumer_and_token(oauth_consumer,
                                                token=oauth_token,
                                                http_method=http_method,
                                                http_url=url,
                                                parameters=parameters)

    req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)

    headers = req.to_header()

    if http_method == "POST":
        encoded_post_data = req.to_postdata()
    else:
        encoded_post_data = None
        url = req.to_url()

    opener = urllib.OpenerDirector()
    opener.add_handler(http_handler)
    opener.add_handler(https_handler)

    response = opener.open(url, encoded_post_data)

    return response
예제 #4
0
def twitterreq(url, method, parameters):
    """
    Send twitter URL request (URL request meaning the URL you need to use in the API to get the data)  
    Utility function used by the others in this package   
    Note: calls a function twitter_credentials() contained in
          a file named twitter_credentials.py which must be provided as follows:
            api_key = " your credentials "  
            api_secret = " your credentials "  
            access_token_key = " your credentials "  
            access_token_secret = " your credentials "  
            return (api_key,api_secret,access_token_key,access_token_secret)
          
     This function is based on a shell provided by and further adapted by George Fisher (see link above)
     Bill Howe
     University of Washington
     for the Coursera course Introduction to Data Science
     Spring/Summer 2014
    """
    import oauth2 as oauth
    import urllib2 as urllib

    # this is a private function containing my Twitter credentials
    from twitter_credentials import twitter_credentials
    api_key,api_secret,access_token_key,access_token_secret = twitter_credentials()

    _debug = 0

    oauth_token    = oauth.Token(key=access_token_key, secret=access_token_secret)
    oauth_consumer = oauth.Consumer(key=api_key, secret=api_secret)

    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()

    http_method = "GET"

    http_handler  = urllib.HTTPHandler(debuglevel=_debug)
    https_handler = urllib.HTTPSHandler(debuglevel=_debug)
    
    '''
    Construct, sign, and open a twitter request
    using the hard-coded credentials above.
    '''
    
    req = oauth.Request.from_consumer_and_token(oauth_consumer,
                                                 token=oauth_token,
                                                 http_method=http_method,
                                                 http_url=url, 
                                                 parameters=parameters)

    req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)

    headers = req.to_header()

    if http_method == "POST":
      encoded_post_data = req.to_postdata()
    else:
      encoded_post_data = None
      url = req.to_url()

    opener = urllib.OpenerDirector()
    opener.add_handler(http_handler)
    opener.add_handler(https_handler)

    response = opener.open(url, encoded_post_data)
    
    return response